
/* 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)

{
  uint uVar1;
  float fVar2;
  float fVar3;
  float fVar4;
  float fVar5;
  uchar uVar6;
  int iVar7;
  PixelChannelMap *pPVar8;
  float fVar9;
  float fVar10;
  float fVar11;
  double dVar12;
  char cVar13;
  DDSVector3 start_00;
  DDSVector3 start_01;
  DDSVector3 axis_00;
  DDSVector3 axis_01;
  DDSVector3 end_00;
  DDSVector3 end_01;
  undefined2 uVar14;
  byte bVar15;
  int iVar16;
  Image *image_00;
  size_t sVar17;
  int iVar18;
  uint uVar19;
  float *pfVar20;
  MagickBooleanType MVar21;
  byte *pbVar22;
  uint uVar23;
  uint uVar24;
  uchar *puVar25;
  size_t sVar26;
  byte extraout_CL;
  uchar uVar27;
  size_t columns;
  byte bVar28;
  int iVar29;
  float fVar30;
  uint uVar31;
  byte *pbVar32;
  int iVar33;
  byte bVar34;
  byte *pbVar35;
  byte bVar36;
  Quantum *pQVar37;
  float *pfVar38;
  DDSVector4 *pDVar39;
  byte bVar40;
  uint uVar41;
  DDSVector4 *pDVar42;
  uchar *puVar43;
  int unaff_EDI;
  int in_GS_OFFSET;
  undefined2 in_FPUControlWord;
  undefined8 uVar44;
  MagickSizeType MVar45;
  uchar *in_stack_fffffb10;
  size_t in_stack_fffffb14;
  float local_4e0;
  float local_4dc;
  float local_4d4;
  float local_4d0;
  float local_4cc;
  float local_4c0;
  float local_4b8;
  float local_4b4;
  uint local_4b0;
  float local_4ac;
  Quantum *local_4a8;
  uint local_4a0;
  uint local_474;
  DDSVector3 end;
  DDSVector3 start;
  DDSVector3 axis;
  undefined4 local_41c;
  undefined4 local_418;
  undefined4 local_414;
  undefined4 local_410;
  DDSVector4 grid;
  DDSVector4 gridrcp;
  DDSVector4 half;
  DDSVector4 onethird_onethird2;
  DDSVector4 two;
  DDSVector4 twonineths;
  DDSVector4 twothirds_twothirds2;
  DDSVector4 xSumwSum;
  ushort __cwtmp;
  undefined4 *local_388;
  DDSVector3 *local_384;
  DDSVector3 *local_380;
  DDSVector4 *local_37c;
  DDSVector4 *local_378;
  DDSVector4 *local_374;
  DDSVector4 *local_370;
  DDSVector4 *local_36c;
  DDSVector4 *local_368;
  DDSVector4 *local_364;
  DDSVector4 *local_360;
  DDSVector4 *local_35c;
  undefined4 local_358;
  DDSVector4 *local_354;
  int local_350;
  int local_34c;
  int local_348;
  DDSVector4 *local_344;
  ssize_t alphas [16];
  ssize_t map [16];
  DDSVector4 points [16];
  DDSVector4 pointsWeights [16];
  uchar indices [16];
  uchar unordered [16];
  uchar order [128];
  
  uVar44 = __x86_get_pc_thunk_di();
  iVar29 = (int)((ulonglong)uVar44 >> 0x20);
  image_00 = (Image *)uVar44;
  local_474 = 0;
  iVar7 = *(int *)(in_GS_OFFSET + 0x14);
  sVar26 = image_00->rows;
  if (0 < (int)sVar26) {
    do {
      sVar17 = image_00->columns;
      uVar41 = local_474 + 4;
      uVar19 = 0;
      if (0 < (int)sVar17) {
        do {
          uVar1 = uVar19 + 4;
          columns = sVar17 - uVar19;
          if (uVar1 < sVar17) {
            columns = 4;
          }
          sVar17 = sVar26 - local_474;
          if (uVar41 < sVar26) {
            sVar17 = 4;
          }
          local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,
                                       (ExceptionInfo *)compression);
          if (local_4a8 == (Quantum *)0x0) {
            sVar26 = image_00->rows;
            break;
          }
          iVar18 = 0;
          do {
            map[iVar18] = -1;
            alphas[iVar18] = -1;
            iVar18 = iVar18 + 1;
          } while (iVar18 != 0x10);
          if ((int)sVar17 < 1) {
            if (iVar29 == 0x35545844) {
              local_4d4 = 0.0;
              local_4b0 = 0xff;
              local_4b8 = 0.0;
              local_4a0 = 5;
              local_4ac = 0.0;
              goto LAB_001ee710;
            }
            local_4d4 = 0.0;
            local_4d0 = 0.0;
            local_4e0 = 0.0;
            local_4c0 = 0.0;
            local_4dc = 0.0;
            local_4cc = 0.0;
            fVar2 = 0.0;
            fVar3 = local_4c0;
LAB_001ed457:
            local_4c0 = fVar3;
            start.z = 0.0;
            start.y = 0.0;
            start.x = 0.0;
            end.z = 0.0;
            end.y = 0.0;
            end.x = 0.0;
            fVar3 = 1.0;
            iVar18 = 8;
            pDVar39 = (DDSVector4 *)0x3f800000;
            fVar5 = 1.0;
            do {
              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;
              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;
              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;
              fVar3 = fVar30;
              if (fVar30 <= fVar4 || fVar4 != fVar30) {
                fVar3 = fVar4;
              }
              fVar5 = fVar9;
              if (fVar9 <= fVar3) {
                fVar5 = fVar3;
              }
              if (fVar5 < 0.0) {
                fVar10 = -fVar5;
                fVar3 = -1.0;
              }
              else {
                fVar3 = 1.0;
                fVar10 = fVar5;
              }
              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {
                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;
              }
              else {
                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);
              }
              iVar18 = iVar18 + -1;
              fVar5 = fVar9 * fVar3;
              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);
              fVar3 = fVar3 * fVar30;
            } while (iVar18 != 0);
            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;
            if (bVar28 == 0) {
              onethird_onethird2.w = 0.11111111;
              local_41c = 0x3f800000;
              local_418 = 0x3f800000;
              local_414 = 0x3f800000;
              local_410 = 0x3f800000;
              half.x = *(float *)(unaff_EDI + 0xb227d);
              two.x = *(float *)(unaff_EDI + 0xbdd29);
              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);
              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);
              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);
              twothirds_twothirds2.w = 0.44444445;
              grid.x = *(float *)(unaff_EDI + 0xd9031);
              grid.w = 0.0;
              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);
              gridrcp.w = 0.0;
              xSumwSum.x = 0.0;
              xSumwSum.y = 0.0;
              xSumwSum.z = 0.0;
              xSumwSum.w = 0.0;
              grid.y = 63.0;
              gridrcp.y = 0.015873017;
              axis_00.y = (float)pointsWeights;
              axis_00.x = fVar3;
              axis_00.z = (float)&xSumwSum;
              grid.z = grid.x;
              gridrcp.z = gridrcp.x;
              half.y = half.x;
              half.z = half.x;
              half.w = half.x;
              onethird_onethird2.y = onethird_onethird2.x;
              onethird_onethird2.z = onethird_onethird2.x;
              two.y = two.x;
              two.z = two.x;
              two.w = two.x;
              twonineths.y = twonineths.x;
              twonineths.z = twonineths.x;
              twonineths.w = twonineths.x;
              twothirds_twothirds2.y = twothirds_twothirds2.x;
              twothirds_twothirds2.z = twothirds_twothirds2.x;
              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,
                                in_stack_fffffb10,in_stack_fffffb14);
              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);
              pDVar42 = (DDSVector4 *)0x0;
              pDVar39 = (DDSVector4 *)0x0;
              local_4cc = 0.0;
              local_4d0 = 0.0;
              local_4dc = 0.0;
              do {
                MVar45 = GetMagickResourceLimit(ThreadResource);
                local_350 = (int)local_4dc;
                local_358 = local_4c0;
                local_34c = (int)local_4d0;
                local_348 = (int)local_4cc;
                ___cwtmp = local_4d4;
                local_388 = &local_41c;
                local_384 = &start;
                local_380 = &end;
                local_37c = &grid;
                local_378 = &gridrcp;
                local_374 = &half;
                local_370 = &onethird_onethird2;
                local_36c = pointsWeights;
                local_368 = &two;
                local_364 = &twonineths;
                local_360 = &twothirds_twothirds2;
                local_35c = &xSumwSum;
                local_354 = pDVar39;
                local_344 = pDVar42;
                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);
                iVar16 = local_348;
                iVar33 = local_34c;
                iVar18 = local_350;
                pDVar39 = local_354;
                local_4c0 = (float)local_358;
                local_4dc = (float)local_350;
                local_4d0 = (float)local_34c;
                local_4cc = (float)local_348;
                if (pDVar42 != local_354) break;
                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);
                if (pDVar42 == (DDSVector4 *)0x8) {
                  pDVar39 = (DDSVector4 *)0x7;
                  break;
                }
                axis_01.y = (float)pointsWeights;
                axis_01.x = end.z - start.z;
                axis_01.z = (float)&xSumwSum;
                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)
                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,
                                           in_stack_fffffb14);
              } while (MVar21 != MagickFalse);
              pDVar39 = (DDSVector4 *)order + (int)pDVar39;
              if (0 < iVar18) {
                pDVar42 = pDVar39;
                do {
                  pfVar20 = &pDVar42->x;
                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);
                  unordered[*(byte *)pfVar20] = '\0';
                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);
              }
              if (iVar18 < iVar33) {
                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);
                do {
                  bVar28 = *pbVar22;
                  pbVar22 = pbVar22 + 1;
                  unordered[bVar28] = '\x02';
                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);
              }
              if (iVar33 < iVar16) {
                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);
                do {
                  bVar28 = *pbVar22;
                  pbVar22 = pbVar22 + 1;
                  unordered[bVar28] = '\x03';
                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);
              }
              if (iVar16 < (int)local_4d4) {
                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);
                do {
                  bVar28 = *pbVar22;
                  pbVar22 = pbVar22 + 1;
                  unordered[bVar28] = '\x01';
                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);
              }
              iVar18 = 0;
              do {
                while (map[iVar18] != -1) {
                  indices[iVar18] = unordered[map[iVar18]];
                  iVar18 = iVar18 + 1;
                  if (iVar18 == 0x10) goto LAB_001edb47;
                }
                indices[iVar18] = '\x03';
                iVar18 = iVar18 + 1;
              } while (iVar18 != 0x10);
            }
            else {
              if (local_4d4 == 0.0) {
                fVar2 = *(float *)(unaff_EDI + 0xb227d);
                start.z = 0.0;
                start.y = 0.0;
LAB_001ee1db:
                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);
LAB_001ee1e7:
                if (start.z < 0.0) goto LAB_001ee13a;
LAB_001ee1f9:
                if (1.0 < start.z) {
                  fVar5 = *(float *)(unaff_EDI + 0xec399);
                }
                else {
                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +
                          start.z * *(float *)(unaff_EDI + 0xd9031);
                }
              }
              else {
                start.y = points[0].y;
                start.z = points[0].z;
                end.x = points[0].x;
                end.y = points[0].y;
                end.z = points[0].z;
                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x
                ;
                local_4dc = points[0].x;
                if (1 < (int)local_4d4) {
                  local_4b4 = points[0].z;
                  bVar36 = 0;
                  bVar40 = 0;
                  local_4ac = points[0].y;
                  local_4b8 = points[0].x;
                  pDVar42 = points;
                  local_4cc = points[0].y;
                  bVar15 = 0;
                  local_4c0 = points[0].z;
                  local_4e0 = local_4d0;
                  bVar34 = 0;
                  do {
                    while( true ) {
                      fVar2 = pDVar42[1].x;
                      fVar4 = pDVar42[1].y;
                      fVar30 = pDVar42[1].z;
                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;
                      if (local_4e0 <= fVar9) break;
                      pDVar42 = pDVar42 + 1;
                      bVar34 = bVar28;
                      local_4e0 = fVar9;
                      local_4dc = fVar2;
                      local_4cc = fVar4;
                      local_4c0 = fVar30;
                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;
                    }
                    if (local_4d0 < fVar9) {
                      local_4d0 = fVar9;
                      local_4b8 = fVar2;
                      local_4b4 = fVar30;
                      local_4ac = fVar4;
                      bVar36 = bVar28;
                      bVar40 = bVar28;
                      bVar15 = bVar28;
                    }
                    pDVar42 = pDVar42 + 1;
                  } while (pDVar42 != points + (int)local_4d4 + -1);
LAB_001ee095:
                  fVar2 = local_4cc;
                  fVar3 = local_4c0;
                  if (bVar34 == 0) {
                    local_4dc = points[0].x;
                    fVar2 = start.y;
                    fVar3 = start.z;
                  }
                  start.z = fVar3;
                  start.y = fVar2;
                  if (bVar40 != 0) {
                    end.x = local_4b8;
                  }
                  if (bVar36 != 0) {
                    end.y = local_4ac;
                  }
                  if (bVar15 != 0) {
                    end.z = local_4b4;
                  }
                }
                if (0.0 <= local_4dc) {
                  if (local_4dc <= 1.0) {
                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +
                            local_4dc * *(float *)(unaff_EDI + 0xd9031);
                  }
                  else {
                    fVar2 = *(float *)(unaff_EDI + 0xec399);
                  }
                }
                else {
                  fVar2 = *(float *)(unaff_EDI + 0xb227d);
                }
                if (0.0 <= start.y) {
                  if (start.y <= 1.0) goto LAB_001ee1db;
                  fVar3 = *(float *)(unaff_EDI + 0xec39d);
                  goto LAB_001ee1e7;
                }
                fVar3 = *(float *)(unaff_EDI + 0xb227d);
                if (0.0 <= start.z) goto LAB_001ee1f9;
LAB_001ee13a:
                fVar5 = *(float *)(unaff_EDI + 0xb227d);
              }
              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);
              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);
              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);
              if (end.x < 0.0) {
                fVar2 = *(float *)(unaff_EDI + 0xb227d);
LAB_001ee39c:
                if (0.0 <= end.y) goto LAB_001ee3ad;
LAB_001ee81d:
                fVar3 = *(float *)(unaff_EDI + 0xb227d);
LAB_001ee3c3:
                if (0.0 <= end.z) goto LAB_001ee3d4;
LAB_001ee7e9:
                fVar5 = *(float *)(unaff_EDI + 0xb227d);
              }
              else {
                if (1.0 < end.x) {
                  fVar2 = *(float *)(unaff_EDI + 0xec399);
                  goto LAB_001ee39c;
                }
                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);
                if (end.y < 0.0) goto LAB_001ee81d;
LAB_001ee3ad:
                if (1.0 < end.y) {
                  fVar3 = *(float *)(unaff_EDI + 0xec39d);
                  goto LAB_001ee3c3;
                }
                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);
                if (end.z < 0.0) goto LAB_001ee7e9;
LAB_001ee3d4:
                if (1.0 < end.z) {
                  fVar5 = *(float *)(unaff_EDI + 0xec399);
                }
                else {
                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);
                }
              }
              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);
              if (fVar5 <= 0.0) {
                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);
              }
              else {
                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);
              }
              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);
              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);
              pointsWeights[0].x = start.x;
              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);
              pointsWeights[0].y = start.y;
              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);
              pointsWeights[0].z = start.z;
              pointsWeights[0].w = end.x;
              fVar2 = *(float *)(unaff_EDI + 0xec3b5);
              fVar3 = *(float *)(unaff_EDI + 0xec3b9);
              pointsWeights[1].x = end.y;
              pointsWeights[1].y = end.z;
              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;
              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;
              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;
              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;
              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;
              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;
              if (0 < (int)local_4d4) {
                puVar43 = order;
                pDVar39 = points;
                puVar25 = puVar43 + (int)local_4d4;
                do {
                  iVar18 = 0;
                  iVar33 = 0;
                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);
                  pDVar42 = pointsWeights;
                  do {
                    fVar3 = pDVar39->x - pDVar42->x;
                    fVar4 = pDVar39->y - pDVar42->y;
                    fVar5 = pDVar39->z - pDVar42->z;
                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;
                    if (fVar3 < fVar2) {
                      iVar18 = iVar33;
                      fVar2 = fVar3;
                    }
                    iVar33 = iVar33 + 1;
                    pDVar42 = (DDSVector4 *)&pDVar42->w;
                  } while (iVar33 != 4);
                  *puVar43 = (uchar)iVar18;
                  puVar43 = puVar43 + 1;
                  pDVar39 = pDVar39 + 1;
                } while (puVar43 != puVar25);
              }
              iVar18 = 0;
              do {
                if (map[iVar18] == -1) {
                  indices[iVar18] = '\x03';
                }
                else {
                  indices[iVar18] = order[map[iVar18]];
                }
                iVar18 = iVar18 + 1;
              } while (iVar18 != 0x10);
            }
LAB_001edb47:
            start_00.y = start.y;
            start_00.x = start.x;
            start_00.z = start.z;
            end_00.y = end.y;
            end_00.x = end.x;
            end_00.z = end.z;
            WriteIndices(image_00,start_00,end_00,indices);
          }
          else {
            local_4b0 = 0xff;
            local_4d4 = 0.0;
            local_4ac = 3.57331e-43;
            local_4b8 = 0.0;
            local_4a0 = 0;
            local_4c0 = 0.0;
            do {
              if (0 < (int)columns) {
                pPVar8 = image_00->channel_map;
                sVar26 = image_00->number_channels;
                local_4e0 = (float)((int)local_4c0 << 4);
                pQVar37 = local_4a8;
                do {
                  uVar19 = 0xff;
                  local_4dc._0_1_ = 0xff;
                  if (iVar29 == 0x35545844) {
                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {
LAB_001ed600:
                      local_4b8 = 3.57331e-43;
                    }
                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {
                      uVar19 = 0;
                      local_4dc._0_1_ = 0;
                      local_4b0 = 0;
                    }
                    else {
                      dVar12 = pQVar37[image_00->channel_map[4].offset] /
                               (double)*(float *)(unaff_EDI + 0xbb149);
                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;
                      local_4dc._0_1_ =
                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));
                      uVar19 = (uint)local_4dc._0_1_;
                      if (uVar19 < local_4b0) {
                        local_4b0 = uVar19;
                      }
                      if ((uint)local_4b8 < uVar19) {
                        local_4b8 = (float)uVar19;
                      }
                      if (local_4dc._0_1_ == 0) {
                        uVar19 = 0;
                      }
                      else {
                        if (uVar19 < (uint)local_4ac) {
                          local_4ac = (float)uVar19;
                        }
                        if (local_4dc._0_1_ == 0xff) {
                          uVar19 = 0xff;
                        }
                        else if (local_4a0 < uVar19) {
                          local_4a0 = uVar19;
                        }
                      }
                    }
                  }
                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;
                  fVar2 = (float)pQVar37[pPVar8->offset];
                  if (NAN(fVar2)) {
                    fVar2 = 0.0;
                  }
                  else if (fVar2 <= 0.0) {
                    fVar2 = 0.0;
                  }
                  else {
                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);
                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {
                      fVar2 = 1.0;
                    }
                    else {
                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)
                              / *(float *)(unaff_EDI + 0xbb14d);
                    }
                  }
                  fVar3 = (float)pQVar37[pPVar8[1].offset];
                  if (NAN(fVar3)) {
                    fVar3 = 0.0;
                  }
                  else if (fVar3 <= 0.0) {
                    fVar3 = 0.0;
                  }
                  else {
                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);
                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {
                      fVar3 = 1.0;
                    }
                    else {
                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)
                              / *(float *)(unaff_EDI + 0xbb14d);
                    }
                  }
                  fVar5 = (float)pQVar37[pPVar8[2].offset];
                  if (NAN(fVar5)) {
                    fVar5 = 0.0;
                  }
                  else if (fVar5 <= 0.0) {
                    fVar5 = 0.0;
                  }
                  else {
                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);
                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {
                      fVar5 = 1.0;
                    }
                    else {
                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)
                              / *(float *)(unaff_EDI + 0xbb14d);
                    }
                  }
                  if (image == (Image *)0x0) {
                    fVar4 = 1.0;
                  }
                  else {
                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);
                  }
                  pQVar37 = pQVar37 + sVar26;
                  if (0 < (int)local_4d4) {
                    pDVar39 = points;
                    fVar30 = 0.0;
                    do {
                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)
                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {
                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;
                        *(float *)((int)map + (int)local_4e0) = fVar30;
                        goto LAB_001ed2a5;
                      }
                      fVar30 = (float)((int)fVar30 + 1);
                      pDVar39 = pDVar39 + 1;
                    } while (fVar30 != local_4d4);
                  }
                  points[(int)local_4d4].x = fVar2;
                  points[(int)local_4d4].y = fVar3;
                  points[(int)local_4d4].z = fVar5;
                  points[(int)local_4d4].w = fVar4;
                  *(float *)((int)map + (int)local_4e0) = local_4d4;
                  local_4d4 = (float)((int)local_4d4 + 1);
LAB_001ed2a5:
                  local_4e0 = (float)((int)local_4e0 + 4);
                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);
                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);
              }
              local_4c0 = (float)((int)local_4c0 + 1);
            } while (local_4c0 != (float)sVar17);
            if (0 < (int)local_4d4) {
              pfVar20 = &points[0].w;
              pfVar38 = pfVar20 + (int)local_4d4 * 4;
              do {
                fVar2 = *pfVar20;
                if (fVar2 < 0.0) {
                  sqrtf(fVar2);
                }
                *pfVar20 = SQRT(fVar2);
                pfVar20 = pfVar20 + 4;
              } while (pfVar38 != pfVar20);
            }
            if (iVar29 == 0x35545844) {
              if (local_4a0 < (uint)local_4ac) {
                local_4ac = (float)local_4a0;
              }
              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;
              local_4a0 = 0xff;
              if ((int)local_4ac + 5U < 0x100) {
                local_4a0 = (int)local_4ac + 5U;
              }
              if (local_4a0 - (int)local_4ac < 5) {
                local_4ac = (float)(local_4a0 - 5);
              }
LAB_001ee710:
              puVar43 = unordered;
              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);
              if ((uint)local_4b8 < local_4b0) {
LAB_001eea60:
                uVar19 = (int)local_4b8 + 7;
                if (0xff < uVar19) {
                  uVar19 = 0xff;
                }
                if (uVar19 - (int)local_4b8 < 7) {
                  local_4b0 = uVar19 - 7;
                  local_4b8 = (float)uVar19;
                }
                else {
                  local_4b0 = (uint)local_4b8;
                  local_4b8 = (float)uVar19;
                }
              }
              else if ((int)local_4b8 - local_4b0 < 7) {
                local_4b8 = (float)local_4b0;
                goto LAB_001eea60;
              }
              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);
              if (sVar17 < sVar26) {
                iVar18 = 0;
                do {
                  while (uVar6 = order[iVar18], uVar6 == '\0') {
                    puVar43[iVar18] = '\x01';
                    iVar18 = iVar18 + 1;
                    if (iVar18 == 0x10) goto LAB_001ee8cf;
                  }
                  uVar27 = '\t' - uVar6;
                  if (uVar6 == '\x01') {
                    uVar27 = '\0';
                  }
                  iVar33 = iVar18 + 1;
                  puVar43[iVar18] = uVar27;
                  iVar18 = iVar33;
                } while (iVar33 != 0x10);
              }
              else {
                local_4b0 = local_4a0;
                local_4b8 = local_4ac;
              }
LAB_001ee8cf:
              WriteBlobByte(image_00,SUB41(local_4b8,0));
              WriteBlobByte(image_00,(uchar)local_4b0);
              do {
                iVar18 = 0;
                uVar19 = 0;
                do {
                  pbVar22 = puVar43 + iVar18;
                  cVar13 = (char)iVar18;
                  iVar18 = iVar18 + 1;
                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);
                } while (iVar18 != 8);
                puVar43 = puVar43 + 8;
                WriteBlobByte(image_00,(uchar)uVar19);
                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));
                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));
              } while (order != puVar43);
            }
            if (local_4d4 != 1.4013e-45) {
              fVar5 = 0.0;
              if (local_4d4 == 0.0) {
                local_4d0 = 0.0;
                local_4e0 = 0.0;
                local_4c0 = 0.0;
                local_4dc = 0.0;
                local_4cc = 0.0;
                fVar2 = fVar5;
                fVar3 = local_4c0;
              }
              else {
                local_4c0 = 0.0;
                local_4b8 = 0.0;
                fVar2 = 0.0;
                pDVar39 = points;
                do {
                  fVar3 = pDVar39->w;
                  pDVar42 = pDVar39 + 1;
                  fVar2 = fVar2 + fVar3;
                  local_4b8 = pDVar39->x * fVar3 + local_4b8;
                  local_4c0 = pDVar39->y * fVar3 + local_4c0;
                  fVar5 = fVar3 * pDVar39->z + fVar5;
                  pDVar39 = pDVar42;
                } while (points + (int)local_4d4 != pDVar42);
                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {
                  local_4b8 = local_4b8 / fVar2;
                  local_4c0 = local_4c0 / fVar2;
                  fVar5 = fVar5 / fVar2;
                }
                local_4d0 = 0.0;
                local_4e0 = 0.0;
                fVar3 = 0.0;
                fVar2 = 0.0;
                local_4dc = 0.0;
                local_4cc = 0.0;
                pDVar39 = points;
                do {
                  pDVar42 = pDVar39 + 1;
                  fVar9 = pDVar39->x - local_4b8;
                  fVar10 = pDVar39->y - local_4c0;
                  fVar11 = pDVar39->z - fVar5;
                  fVar4 = pDVar39->w;
                  fVar30 = fVar11 * fVar4;
                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;
                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;
                  local_4dc = fVar9 * fVar30 + local_4dc;
                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;
                  local_4e0 = fVar10 * fVar30 + local_4e0;
                  local_4d0 = fVar11 * fVar30 + local_4d0;
                  pDVar39 = pDVar42;
                } while (points + (int)local_4d4 != pDVar42);
              }
              goto LAB_001ed457;
            }
            fVar2 = *(float *)(unaff_EDI + 0xbb14d);
            local_4dc = -NAN;
            local_4e0 = 0.0;
            fVar3 = *(float *)(unaff_EDI + 0xb227d);
            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);
            if (0xff < uVar19) {
              uVar19 = 0xff;
            }
            indices[0] = (uchar)uVar19;
            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);
            if (0xff < uVar23) {
              uVar23 = 0xff;
            }
            indices[1] = (uchar)uVar23;
            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);
            if (0xff < uVar31) {
              uVar31 = 0xff;
            }
            indices[2] = (uchar)uVar31;
            uVar6 = '\0';
            uVar24 = uVar19;
            while( true ) {
              iVar18 = (int)local_4e0 * 3;
              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);
              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);
              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));
              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +
                       (uint)pbVar35[2] * (uint)pbVar35[2];
              if (uVar24 <= (uint)local_4dc) {
                fVar2 = *(float *)(unaff_EDI + 0xd9031);
                xSumwSum.x = (float)*pbVar35 / fVar2;
                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);
                xSumwSum.z = (float)*pbVar32 / fVar2;
                ___cwtmp = (float)pbVar35[1] / fVar2;
                uVar6 = local_4e0._0_1_ * '\x02';
                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));
                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);
                local_4dc = (float)uVar24;
              }
              if (local_4e0 == 1.4013e-45) break;
              uVar24 = uVar19 & 0xff;
              local_4e0 = 1.4013e-45;
            }
            puVar43 = unordered;
            do {
              *puVar43 = uVar6;
              puVar43 = puVar43 + 1;
            } while (order != puVar43);
            iVar18 = 0;
            do {
              while (map[iVar18] != -1) {
                order[iVar18] = unordered[map[iVar18]];
                iVar18 = iVar18 + 1;
                if (iVar18 == 0x10) goto LAB_001edf11;
              }
              order[iVar18] = '\x03';
              iVar18 = iVar18 + 1;
            } while (iVar18 != 0x10);
LAB_001edf11:
            start_01.y = xSumwSum.y;
            start_01.x = xSumwSum.x;
            start_01.z = xSumwSum.z;
            end_01.y = (float)local_388;
            end_01.x = ___cwtmp;
            end_01.z = (float)local_384;
            WriteIndices(image_00,start_01,end_01,order);
          }
          sVar17 = image_00->columns;
          sVar26 = image_00->rows;
          uVar19 = uVar1;
        } while ((int)uVar1 < (int)sVar17);
      }
      local_474 = uVar41;
    } while ((int)uVar41 < (int)sVar26);
  }
  if (iVar7 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return;
}



void FUN_001ecea0(int param_1,undefined4 param_2)

{
  uint uVar1;
  float fVar2;
  float fVar3;
  float fVar4;
  float fVar5;
  float fVar6;
  double dVar7;
  float fVar8;
  char cVar9;
  undefined2 uVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  uint uVar15;
  undefined4 uVar16;
  int iVar17;
  byte *pbVar18;
  uint uVar19;
  uint uVar20;
  float *pfVar21;
  float *pfVar22;
  byte extraout_CL;
  byte bVar23;
  int iVar24;
  byte bVar25;
  int iVar26;
  float fVar27;
  byte *pbVar28;
  uint uVar29;
  byte bVar30;
  byte *pbVar31;
  byte bVar32;
  int iVar33;
  byte bVar34;
  uint uVar35;
  int unaff_EDI;
  int in_GS_OFFSET;
  undefined2 in_FPUControlWord;
  undefined8 uVar36;
  float local_4e0;
  float local_4dc;
  float local_4d4;
  float local_4d0;
  float local_4cc;
  float local_4c0;
  float local_4b8;
  float local_4b4;
  uint local_4b0;
  float local_4ac;
  int local_4a8;
  uint local_4a0;
  uint local_474;
  float local_44c;
  float local_448;
  float local_444;
  float local_440;
  float local_43c;
  float local_438;
  float local_434;
  float local_430;
  float local_42c;
  float local_428;
  float local_424;
  float 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;
  undefined4 local_3d8;
  undefined4 local_3d4;
  undefined4 local_3d0;
  undefined4 local_3cc;
  undefined4 local_3c8;
  undefined4 local_3c4;
  undefined4 local_3c0;
  undefined4 local_3bc;
  undefined4 local_3b8;
  undefined4 local_3b4;
  undefined4 local_3b0;
  undefined4 local_3ac;
  undefined4 local_3a8;
  undefined4 local_3a4;
  undefined4 local_3a0;
  float local_39c;
  float local_398;
  float local_394;
  undefined4 local_390;
  float local_38c;
  undefined4 *local_388;
  float *local_384;
  float *local_380;
  undefined4 *local_37c;
  undefined4 *local_378;
  undefined4 *local_374;
  undefined4 *local_370;
  float *local_36c;
  undefined4 *local_368;
  undefined4 *local_364;
  undefined4 *local_360;
  float *local_35c;
  undefined4 local_358;
  int local_354;
  int local_350;
  int local_34c;
  int local_348;
  int local_344;
  uint local_340 [16];
  float local_300 [16];
  float local_2c0 [64];
  float local_1c0;
  float local_1bc;
  float local_1b8;
  float local_1b4;
  float local_1b0;
  float local_1ac;
  float local_1a8;
  float local_1a4;
  float local_1a0;
  float local_19c;
  float local_198;
  float local_194;
  byte local_c0 [16];
  byte local_b0 [16];
  byte local_a0 [128];
  int local_20;
  
  uVar36 = FUN_0004c803();
  iVar26 = (int)((ulonglong)uVar36 >> 0x20);
  iVar11 = (int)uVar36;
  local_474 = 0;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  uVar15 = *(uint *)(iVar11 + 0x1c);
  if (0 < (int)uVar15) {
    do {
      uVar19 = *(uint *)(iVar11 + 0x18);
      uVar35 = local_474 + 4;
      uVar29 = 0;
      if (0 < (int)uVar19) {
        do {
          uVar1 = uVar29 + 4;
          iVar24 = uVar19 - uVar29;
          if (uVar1 < uVar19) {
            iVar24 = 4;
          }
          iVar12 = uVar15 - local_474;
          if (uVar35 < uVar15) {
            iVar12 = 4;
          }
          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);
          if (local_4a8 == 0) {
            uVar15 = *(uint *)(iVar11 + 0x1c);
            break;
          }
          iVar13 = 0;
          do {
            local_300[iVar13] = -NAN;
            local_340[iVar13] = 0xffffffff;
            iVar13 = iVar13 + 1;
          } while (iVar13 != 0x10);
          if (iVar12 < 1) {
            if (iVar26 == 0x35545844) {
              local_4d4 = 0.0;
              local_4b0 = 0xff;
              local_4b8 = 0.0;
              local_4a0 = 5;
              local_4ac = 0.0;
              goto LAB_001ee710;
            }
            local_4d4 = 0.0;
            local_4d0 = 0.0;
            local_4e0 = 0.0;
            local_4c0 = 0.0;
            local_4dc = 0.0;
            local_4cc = 0.0;
            fVar2 = 0.0;
            fVar3 = local_4c0;
LAB_001ed457:
            local_4c0 = fVar3;
            local_438 = 0.0;
            local_43c = 0.0;
            local_440 = 0.0;
            local_444 = 0.0;
            local_448 = 0.0;
            local_44c = 0.0;
            fVar6 = 1.0;
            iVar24 = 8;
            fVar3 = 1.0;
            fVar4 = 1.0;
            do {
              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;
              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;
              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;
              fVar3 = fVar5;
              if (fVar5 <= fVar27 || fVar27 != fVar5) {
                fVar3 = fVar27;
              }
              fVar4 = fVar8;
              if (fVar8 <= fVar3) {
                fVar4 = fVar3;
              }
              if (fVar4 < 0.0) {
                fVar3 = -fVar4;
                fVar6 = -1.0;
              }
              else {
                fVar6 = 1.0;
                fVar3 = fVar4;
              }
              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {
                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;
              }
              else {
                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);
              }
              iVar24 = iVar24 + -1;
              fVar4 = fVar8 * fVar6;
              fVar3 = fVar27 * fVar6;
              fVar6 = fVar6 * fVar5;
            } while (iVar24 != 0);
            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;
            if (bVar25 == 0) {
              local_3d0 = 0x3de38e39;
              local_41c = 0x3f800000;
              local_418 = 0x3f800000;
              local_414 = 0x3f800000;
              local_410 = 0x3f800000;
              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);
              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);
              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);
              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);
              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);
              local_3a0 = 0x3ee38e39;
              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);
              local_400 = 0;
              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);
              local_3f0 = 0;
              local_39c = 0.0;
              local_398 = 0.0;
              local_394 = 0.0;
              local_390 = 0;
              local_408 = 0x427c0000;
              local_3f8 = 0x3c820821;
              local_434 = fVar4;
              local_430 = fVar3;
              local_42c = fVar6;
              local_404 = local_40c;
              local_3f4 = local_3fc;
              local_3e8 = local_3ec;
              local_3e4 = local_3ec;
              local_3e0 = local_3ec;
              local_3d8 = local_3dc;
              local_3d4 = local_3dc;
              local_3c8 = local_3cc;
              local_3c4 = local_3cc;
              local_3c0 = local_3cc;
              local_3b8 = local_3bc;
              local_3b4 = local_3bc;
              local_3b0 = local_3bc;
              local_3a8 = local_3ac;
              local_3a4 = local_3ac;
              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);
              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);
              iVar12 = 0;
              iVar24 = 0;
              local_4cc = 0.0;
              local_4d0 = 0.0;
              local_4dc = 0.0;
              do {
                uVar16 = GetMagickResourceLimit(7);
                local_350 = (int)local_4dc;
                local_358 = local_4c0;
                local_34c = (int)local_4d0;
                local_348 = (int)local_4cc;
                local_38c = local_4d4;
                local_388 = &local_41c;
                local_384 = &local_440;
                local_380 = &local_44c;
                local_37c = &local_40c;
                local_378 = &local_3fc;
                local_374 = &local_3ec;
                local_370 = &local_3dc;
                local_36c = &local_1c0;
                local_368 = &local_3cc;
                local_364 = &local_3bc;
                local_360 = &local_3ac;
                local_35c = &local_39c;
                local_354 = iVar24;
                local_344 = iVar12;
                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);
                iVar14 = local_348;
                iVar33 = local_34c;
                iVar13 = local_350;
                iVar24 = local_354;
                local_4c0 = (float)local_358;
                local_4dc = (float)local_350;
                local_4d0 = (float)local_34c;
                local_4cc = (float)local_348;
                if (iVar12 != local_354) break;
                iVar12 = iVar12 + 1;
                if (iVar12 == 8) {
                  iVar24 = 7;
                  break;
                }
                local_428 = local_44c - local_440;
                local_424 = local_448 - local_43c;
                local_420 = local_444 - local_438;
                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,
                                      iVar12);
              } while (iVar17 != 0);
              pbVar28 = local_a0 + iVar24 * 0x10;
              if (0 < iVar13) {
                pbVar18 = pbVar28;
                do {
                  bVar25 = *pbVar18;
                  pbVar18 = pbVar18 + 1;
                  local_b0[bVar25] = 0;
                } while (pbVar28 + iVar13 != pbVar18);
              }
              if (iVar13 < iVar33) {
                pbVar18 = pbVar28 + iVar13;
                do {
                  bVar25 = *pbVar18;
                  pbVar18 = pbVar18 + 1;
                  local_b0[bVar25] = 2;
                } while (pbVar28 + iVar33 != pbVar18);
              }
              if (iVar33 < iVar14) {
                pbVar18 = pbVar28 + iVar33;
                do {
                  bVar25 = *pbVar18;
                  pbVar18 = pbVar18 + 1;
                  local_b0[bVar25] = 3;
                } while (pbVar28 + iVar14 != pbVar18);
              }
              if (iVar14 < (int)local_4d4) {
                pbVar18 = pbVar28 + iVar14;
                do {
                  bVar25 = *pbVar18;
                  pbVar18 = pbVar18 + 1;
                  local_b0[bVar25] = 1;
                } while (pbVar28 + (int)local_4d4 != pbVar18);
              }
              iVar24 = 0;
              do {
                while (local_300[iVar24] != -NAN) {
                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];
                  iVar24 = iVar24 + 1;
                  if (iVar24 == 0x10) goto LAB_001edb47;
                }
                local_c0[iVar24] = 3;
                iVar24 = iVar24 + 1;
              } while (iVar24 != 0x10);
            }
            else {
              if (local_4d4 == 0.0) {
                fVar2 = *(float *)(unaff_EDI + 0xb227d);
                local_438 = 0.0;
                local_43c = 0.0;
LAB_001ee1db:
                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +
                        *(float *)(unaff_EDI + 0xb227d);
LAB_001ee1e7:
                if (local_438 < 0.0) goto LAB_001ee13a;
LAB_001ee1f9:
                if (1.0 < local_438) {
                  fVar6 = *(float *)(unaff_EDI + 0xec399);
                }
                else {
                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +
                          local_438 * *(float *)(unaff_EDI + 0xd9031);
                }
              }
              else {
                local_43c = local_2c0[1];
                local_438 = local_2c0[2];
                local_44c = local_2c0[0];
                local_448 = local_2c0[1];
                local_444 = local_2c0[2];
                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];
                local_4dc = local_2c0[0];
                if (1 < (int)local_4d4) {
                  local_4b4 = local_2c0[2];
                  bVar32 = 0;
                  bVar34 = 0;
                  local_4ac = local_2c0[1];
                  local_4b8 = local_2c0[0];
                  pfVar21 = local_2c0;
                  local_4cc = local_2c0[1];
                  bVar23 = 0;
                  local_4c0 = local_2c0[2];
                  local_4e0 = local_4d0;
                  bVar30 = 0;
                  do {
                    while( true ) {
                      fVar2 = pfVar21[4];
                      fVar27 = pfVar21[5];
                      fVar5 = pfVar21[6];
                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;
                      if (local_4e0 <= fVar8) break;
                      pfVar21 = pfVar21 + 4;
                      bVar30 = bVar25;
                      local_4e0 = fVar8;
                      local_4dc = fVar2;
                      local_4cc = fVar27;
                      local_4c0 = fVar5;
                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;
                    }
                    if (local_4d0 < fVar8) {
                      local_4d0 = fVar8;
                      local_4b8 = fVar2;
                      local_4b4 = fVar5;
                      local_4ac = fVar27;
                      bVar32 = bVar25;
                      bVar34 = bVar25;
                      bVar23 = bVar25;
                    }
                    pfVar21 = pfVar21 + 4;
                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);
LAB_001ee095:
                  fVar2 = local_4cc;
                  fVar3 = local_4c0;
                  if (bVar30 == 0) {
                    local_4dc = local_2c0[0];
                    fVar2 = local_43c;
                    fVar3 = local_438;
                  }
                  local_438 = fVar3;
                  local_43c = fVar2;
                  if (bVar34 != 0) {
                    local_44c = local_4b8;
                  }
                  if (bVar32 != 0) {
                    local_448 = local_4ac;
                  }
                  if (bVar23 != 0) {
                    local_444 = local_4b4;
                  }
                }
                if (0.0 <= local_4dc) {
                  if (local_4dc <= 1.0) {
                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +
                            local_4dc * *(float *)(unaff_EDI + 0xd9031);
                  }
                  else {
                    fVar2 = *(float *)(unaff_EDI + 0xec399);
                  }
                }
                else {
                  fVar2 = *(float *)(unaff_EDI + 0xb227d);
                }
                if (0.0 <= local_43c) {
                  if (local_43c <= 1.0) goto LAB_001ee1db;
                  fVar3 = *(float *)(unaff_EDI + 0xec39d);
                  goto LAB_001ee1e7;
                }
                fVar3 = *(float *)(unaff_EDI + 0xb227d);
                if (0.0 <= local_438) goto LAB_001ee1f9;
LAB_001ee13a:
                fVar6 = *(float *)(unaff_EDI + 0xb227d);
              }
              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);
              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);
              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);
              if (local_44c < 0.0) {
                fVar2 = *(float *)(unaff_EDI + 0xb227d);
LAB_001ee39c:
                if (0.0 <= local_448) goto LAB_001ee3ad;
LAB_001ee81d:
                fVar3 = *(float *)(unaff_EDI + 0xb227d);
LAB_001ee3c3:
                if (0.0 <= local_444) goto LAB_001ee3d4;
LAB_001ee7e9:
                fVar6 = *(float *)(unaff_EDI + 0xb227d);
              }
              else {
                if (1.0 < local_44c) {
                  fVar2 = *(float *)(unaff_EDI + 0xec399);
                  goto LAB_001ee39c;
                }
                fVar2 = *(float *)(unaff_EDI + 0xb227d) +
                        local_44c * *(float *)(unaff_EDI + 0xd9031);
                if (local_448 < 0.0) goto LAB_001ee81d;
LAB_001ee3ad:
                if (1.0 < local_448) {
                  fVar3 = *(float *)(unaff_EDI + 0xec39d);
                  goto LAB_001ee3c3;
                }
                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +
                        *(float *)(unaff_EDI + 0xb227d);
                if (local_444 < 0.0) goto LAB_001ee7e9;
LAB_001ee3d4:
                if (1.0 < local_444) {
                  fVar6 = *(float *)(unaff_EDI + 0xec399);
                }
                else {
                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +
                          *(float *)(unaff_EDI + 0xb227d);
                }
              }
              uVar10 = (undefined2)((uint)local_38c >> 0x10);
              if (fVar6 <= 0.0) {
                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);
              }
              else {
                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);
              }
              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);
              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);
              local_1c0 = local_440;
              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);
              local_1bc = local_43c;
              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);
              local_1b8 = local_438;
              local_1b4 = local_44c;
              fVar2 = *(float *)(unaff_EDI + 0xec3b5);
              fVar3 = *(float *)(unaff_EDI + 0xec3b9);
              local_1b0 = local_448;
              local_1ac = local_444;
              local_1a8 = local_44c * fVar3 + local_440 * fVar2;
              local_1a4 = local_448 * fVar3 + local_43c * fVar2;
              local_1a0 = local_444 * fVar3 + local_438 * fVar2;
              local_19c = local_44c * fVar2 + local_440 * fVar3;
              local_198 = local_448 * fVar2 + local_43c * fVar3;
              local_194 = fVar3 * local_438 + local_444 * fVar2;
              if (0 < (int)local_4d4) {
                pbVar28 = local_a0;
                pfVar21 = local_2c0;
                pbVar18 = pbVar28 + (int)local_4d4;
                do {
                  iVar24 = 0;
                  iVar12 = 0;
                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);
                  pfVar22 = &local_1c0;
                  do {
                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +
                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +
                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);
                    if (fVar3 < fVar2) {
                      iVar24 = iVar12;
                      fVar2 = fVar3;
                    }
                    iVar12 = iVar12 + 1;
                    pfVar22 = pfVar22 + 3;
                  } while (iVar12 != 4);
                  *pbVar28 = (byte)iVar24;
                  pbVar28 = pbVar28 + 1;
                  pfVar21 = pfVar21 + 4;
                } while (pbVar28 != pbVar18);
              }
              iVar24 = 0;
              do {
                if (local_300[iVar24] == -NAN) {
                  local_c0[iVar24] = 3;
                }
                else {
                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];
                }
                iVar24 = iVar24 + 1;
              } while (iVar24 != 0x10);
            }
LAB_001edb47:
            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);
          }
          else {
            local_4b0 = 0xff;
            local_4d4 = 0.0;
            local_4ac = 3.57331e-43;
            local_4b8 = 0.0;
            local_4a0 = 0;
            local_4c0 = 0.0;
            do {
              if (0 < iVar24) {
                iVar13 = *(int *)(iVar11 + 0x2a8);
                iVar14 = *(int *)(iVar11 + 0x298) * 8;
                local_4e0 = (float)((int)local_4c0 << 4);
                iVar33 = local_4a8;
                do {
                  uVar15 = 0xff;
                  local_4dc._0_1_ = 0xff;
                  if (iVar26 == 0x35545844) {
                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {
LAB_001ed600:
                      local_4b8 = 3.57331e-43;
                    }
                    else {
                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);
                      if (dVar7 <= 0.0) {
                        uVar15 = 0;
                        local_4dc._0_1_ = 0;
                        local_4b0 = 0;
                      }
                      else {
                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);
                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;
                        local_4dc._0_1_ =
                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));
                        uVar15 = (uint)local_4dc._0_1_;
                        if (uVar15 < local_4b0) {
                          local_4b0 = uVar15;
                        }
                        if ((uint)local_4b8 < uVar15) {
                          local_4b8 = (float)uVar15;
                        }
                        if (local_4dc._0_1_ == 0) {
                          uVar15 = 0;
                        }
                        else {
                          if (uVar15 < (uint)local_4ac) {
                            local_4ac = (float)uVar15;
                          }
                          if (local_4dc._0_1_ == 0xff) {
                            uVar15 = 0xff;
                          }
                          else if (local_4a0 < uVar15) {
                            local_4a0 = uVar15;
                          }
                        }
                      }
                    }
                  }
                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;
                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);
                  if (NAN(fVar2)) {
                    fVar2 = 0.0;
                  }
                  else if (fVar2 <= 0.0) {
                    fVar2 = 0.0;
                  }
                  else {
                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);
                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {
                      fVar2 = 1.0;
                    }
                    else {
                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)
                              / *(float *)(unaff_EDI + 0xbb14d);
                    }
                  }
                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);
                  if (NAN(fVar3)) {
                    fVar3 = 0.0;
                  }
                  else if (fVar3 <= 0.0) {
                    fVar3 = 0.0;
                  }
                  else {
                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);
                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {
                      fVar3 = 1.0;
                    }
                    else {
                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)
                              / *(float *)(unaff_EDI + 0xbb14d);
                    }
                  }
                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);
                  if (NAN(fVar6)) {
                    fVar6 = 0.0;
                  }
                  else if (fVar6 <= 0.0) {
                    fVar6 = 0.0;
                  }
                  else {
                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);
                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {
                      fVar6 = 1.0;
                    }
                    else {
                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)
                              / *(float *)(unaff_EDI + 0xbb14d);
                    }
                  }
                  if (param_1 == 0) {
                    fVar4 = 1.0;
                  }
                  else {
                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);
                  }
                  iVar33 = iVar33 + iVar14;
                  if (0 < (int)local_4d4) {
                    pfVar21 = local_2c0;
                    fVar27 = 0.0;
                    do {
                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))
                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {
                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];
                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;
                        goto LAB_001ed2a5;
                      }
                      fVar27 = (float)((int)fVar27 + 1);
                      pfVar21 = pfVar21 + 4;
                    } while (fVar27 != local_4d4);
                  }
                  local_2c0[(int)local_4d4 * 4] = fVar2;
                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;
                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;
                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;
                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;
                  local_4d4 = (float)((int)local_4d4 + 1);
LAB_001ed2a5:
                  local_4e0 = (float)((int)local_4e0 + 4);
                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);
                local_4a8 = local_4a8 + iVar14 * iVar24;
              }
              local_4c0 = (float)((int)local_4c0 + 1);
            } while (local_4c0 != (float)iVar12);
            if (0 < (int)local_4d4) {
              pfVar21 = local_2c0 + 3;
              pfVar22 = pfVar21 + (int)local_4d4 * 4;
              do {
                fVar2 = *pfVar21;
                if (fVar2 < 0.0) {
                  sqrtf(fVar2);
                }
                *pfVar21 = SQRT(fVar2);
                pfVar21 = pfVar21 + 4;
              } while (pfVar22 != pfVar21);
            }
            if (iVar26 == 0x35545844) {
              if (local_4a0 < (uint)local_4ac) {
                local_4ac = (float)local_4a0;
              }
              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;
              local_4a0 = 0xff;
              if ((int)local_4ac + 5U < 0x100) {
                local_4a0 = (int)local_4ac + 5U;
              }
              if (local_4a0 - (int)local_4ac < 5) {
                local_4ac = (float)(local_4a0 - 5);
              }
LAB_001ee710:
              pbVar28 = local_b0;
              uVar15 = FUN_001e9410(local_340,pbVar28);
              if ((uint)local_4b8 < local_4b0) {
LAB_001eea60:
                uVar19 = (int)local_4b8 + 7;
                if (0xff < uVar19) {
                  uVar19 = 0xff;
                }
                if (uVar19 - (int)local_4b8 < 7) {
                  local_4b0 = uVar19 - 7;
                  local_4b8 = (float)uVar19;
                }
                else {
                  local_4b0 = (uint)local_4b8;
                  local_4b8 = (float)uVar19;
                }
              }
              else if ((int)local_4b8 - local_4b0 < 7) {
                local_4b8 = (float)local_4b0;
                goto LAB_001eea60;
              }
              uVar19 = FUN_001e9410(local_340,local_a0);
              if (uVar19 < uVar15) {
                iVar24 = 0;
                do {
                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {
                    pbVar28[iVar24] = 1;
                    iVar24 = iVar24 + 1;
                    if (iVar24 == 0x10) goto LAB_001ee8cf;
                  }
                  bVar23 = 9 - bVar25;
                  if (bVar25 == 1) {
                    bVar23 = 0;
                  }
                  iVar12 = iVar24 + 1;
                  pbVar28[iVar24] = bVar23;
                  iVar24 = iVar12;
                } while (iVar12 != 0x10);
              }
              else {
                local_4b0 = local_4a0;
                local_4b8 = local_4ac;
              }
LAB_001ee8cf:
              WriteBlobByte(iVar11,local_4b8);
              WriteBlobByte(iVar11,local_4b0);
              do {
                iVar24 = 0;
                uVar15 = 0;
                do {
                  pbVar18 = pbVar28 + iVar24;
                  cVar9 = (char)iVar24;
                  iVar24 = iVar24 + 1;
                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);
                } while (iVar24 != 8);
                pbVar28 = pbVar28 + 8;
                WriteBlobByte(iVar11,uVar15 & 0xff);
                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);
                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);
              } while (local_a0 != pbVar28);
            }
            if (local_4d4 != 1.4013e-45) {
              fVar6 = 0.0;
              if (local_4d4 == 0.0) {
                local_4d0 = 0.0;
                local_4e0 = 0.0;
                local_4c0 = 0.0;
                local_4dc = 0.0;
                local_4cc = 0.0;
                fVar2 = fVar6;
                fVar3 = local_4c0;
              }
              else {
                local_4c0 = 0.0;
                local_4b8 = 0.0;
                fVar2 = 0.0;
                pfVar21 = local_2c0;
                do {
                  fVar3 = pfVar21[3];
                  pfVar22 = pfVar21 + 4;
                  fVar2 = fVar2 + fVar3;
                  local_4b8 = *pfVar21 * fVar3 + local_4b8;
                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;
                  fVar6 = fVar3 * pfVar21[2] + fVar6;
                  pfVar21 = pfVar22;
                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);
                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {
                  local_4b8 = local_4b8 / fVar2;
                  local_4c0 = local_4c0 / fVar2;
                  fVar6 = fVar6 / fVar2;
                }
                local_4d0 = 0.0;
                local_4e0 = 0.0;
                fVar3 = 0.0;
                fVar2 = 0.0;
                local_4dc = 0.0;
                local_4cc = 0.0;
                pfVar21 = local_2c0;
                do {
                  pfVar22 = pfVar21 + 4;
                  fVar5 = *pfVar21 - local_4b8;
                  fVar8 = pfVar21[1] - local_4c0;
                  fVar4 = pfVar21[3];
                  fVar27 = (pfVar21[2] - fVar6) * fVar4;
                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;
                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;
                  local_4dc = fVar5 * fVar27 + local_4dc;
                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;
                  local_4e0 = fVar8 * fVar27 + local_4e0;
                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;
                  pfVar21 = pfVar22;
                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);
              }
              goto LAB_001ed457;
            }
            fVar2 = *(float *)(unaff_EDI + 0xbb14d);
            local_4dc = -NAN;
            local_4e0 = 0.0;
            fVar3 = *(float *)(unaff_EDI + 0xb227d);
            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);
            if (0xff < uVar15) {
              uVar15 = 0xff;
            }
            local_c0[0] = (byte)uVar15;
            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);
            if (0xff < uVar19) {
              uVar19 = 0xff;
            }
            local_c0[1] = (char)uVar19;
            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);
            if (0xff < uVar29) {
              uVar29 = 0xff;
            }
            local_c0[2] = (char)uVar29;
            bVar25 = 0;
            uVar20 = uVar15;
            while( true ) {
              iVar24 = (int)local_4e0 * 3;
              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);
              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);
              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));
              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +
                       (uint)pbVar31[2] * (uint)pbVar31[2];
              if (uVar20 <= (uint)local_4dc) {
                fVar2 = *(float *)(unaff_EDI + 0xd9031);
                local_39c = (float)*pbVar31 / fVar2;
                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);
                local_394 = (float)*pbVar18 / fVar2;
                local_38c = (float)pbVar31[1] / fVar2;
                bVar25 = local_4e0._0_1_ * '\x02';
                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));
                local_384 = (float *)((float)pbVar18[1] / fVar2);
                local_4dc = (float)uVar20;
              }
              if (local_4e0 == 1.4013e-45) break;
              uVar20 = uVar15 & 0xff;
              local_4e0 = 1.4013e-45;
            }
            pbVar28 = local_b0;
            do {
              *pbVar28 = bVar25;
              pbVar28 = pbVar28 + 1;
            } while (local_a0 != pbVar28);
            iVar24 = 0;
            do {
              while (local_300[iVar24] != -NAN) {
                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];
                iVar24 = iVar24 + 1;
                if (iVar24 == 0x10) goto LAB_001edf11;
              }
              local_a0[iVar24] = 3;
              iVar24 = iVar24 + 1;
            } while (iVar24 != 0x10);
LAB_001edf11:
            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);
          }
          uVar19 = *(uint *)(iVar11 + 0x18);
          uVar15 = *(uint *)(iVar11 + 0x1c);
          uVar29 = uVar1;
        } while ((int)uVar1 < (int)uVar19);
      }
      local_474 = uVar35;
    } while ((int)uVar35 < (int)uVar15);
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0029eab0();
  }
  return;
}


PUSH EBP
PUSH EDI
CALL 0x0004c803
ADD EDI,0x1ec159
PUSH ESI
PUSH EBX
SUB ESP,0x4dc
MOV EBX,dword ptr [ESP + 0x4f4]
MOV dword ptr [ESP + 0x30],EAX
MOV dword ptr [ESP + 0x14],EDX
MOV dword ptr [ESP + 0x84],ECX
MOV dword ptr [ESP + 0x78],0x0
MOV dword ptr [ESP + 0x80],EBX
MOV EBX,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x4cc],EBX
XOR EBX,EBX
MOV EBX,dword ptr [EAX + 0x1c]
TEST EBX,EBX
JLE 0x001edba7
MOV EAX,dword ptr [ESP + 0x30]
XOR EDX,EDX
MOV ESI,dword ptr [ESP + 0x78]
MOV EAX,dword ptr [EAX + 0x18]
ADD ESI,0x4
MOV dword ptr [ESP + 0x7c],ESI
LEA ESI,[ESP + 0x1ac]
MOV dword ptr [ESP + 0x28],ESI
TEST EAX,EAX
JLE 0x001edb97
MOV EBP,dword ptr [ESP + 0x78]
LEA ESI,[EDX + 0x4]
MOV ECX,EAX
MOV dword ptr [ESP + 0x50],ESI
SUB ECX,EDX
CMP EAX,ESI
MOV ESI,0x4
CMOVA ECX,ESI
MOV EAX,EBX
SUB EAX,EBP
CMP dword ptr [ESP + 0x7c],EBX
MOV dword ptr [ESP + 0x38],ECX
MOV EBX,EDI
CMOVC EAX,ESI
SUB ESP,0x8
MOV dword ptr [ESP + 0x50],EAX
PUSH dword ptr [ESP + 0x88]
PUSH EAX
PUSH ECX
PUSH EBP
PUSH EDX
PUSH dword ptr [ESP + 0x4c]
CALL 0x00030e70
MOV dword ptr [ESP + 0x64],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x001eead5
MOV ECX,dword ptr [ESP + 0x28]
LEA EDX,[ESP + 0x1ec]
XOR EAX,EAX
MOV dword ptr [ESP + 0x24],EDX
LEA ESI,[ESI]
MOV dword ptr [EDX + EAX*0x4],0xffffffff
MOV dword ptr [ECX + EAX*0x4],0xffffffff
ADD EAX,0x1
CMP EAX,0x10
JNZ 0x001ecf88
MOV EBX,dword ptr [ESP + 0x48]
TEST EBX,EBX
JLE 0x001ee159
MOV dword ptr [ESP + 0x3c],0xff
XOR ESI,ESI
MOV dword ptr [ESP + 0x40],0xff
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x2c],0x0
MOV ECX,dword ptr [ESP + 0x38]
TEST ECX,ECX
JLE 0x001edbc6
MOV EAX,dword ptr [ESP + 0x30]
MOV EBP,dword ptr [ESP + 0x44]
MOV EBX,dword ptr [EAX + 0x2a8]
MOV EAX,dword ptr [EAX + 0x298]
SHL EAX,0x3
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x2c]
MOV ECX,EAX
SHL ECX,0x4
MOV dword ptr [ESP + 0xc],ECX
MOV ECX,dword ptr [ESP + 0x38]
LEA EAX,[ECX + EAX*0x4]
SHL EAX,0x2
MOV dword ptr [ESP + 0x20],EAX
LEA ESI,[ESI]
LEA EDI,[EDI]
CMP dword ptr [ESP + 0x14],0x35545844
MOV EAX,0xff
MOV byte ptr [ESP + 0x10],0xff
JZ 0x001ed550
MOV EDX,dword ptr [ESP + 0x28]
MOV ECX,dword ptr [ESP + 0xc]
MOV dword ptr [EDX + ECX*0x1],EAX
MOV EDX,dword ptr [EBX + 0x8]
FLDZ
FLD qword ptr [EBP + EDX*0x8]
FUCOMI ST0,ST0
JP 0x001ed0c8
FLDZ
FUCOMIP ST0,ST1
JNC 0x001ed0d0
FSTP ST1
FDIV dword ptr [EDI + 0xffeceff0]
FLD dword ptr [EDI + 0xffeceff4]
FLD ST0
FXCH ST2
FUCOMI ST0,ST2
FSTP ST2
JNC 0x001ed5e0
FXCH
FNSTCW word ptr [ESP + 0x9a]
FADD dword ptr [EDI + 0xffec6124]
MOVZX EDX,word ptr [ESP + 0x9a]
OR DH,0xc
MOV word ptr [ESP + 0x98],DX
FLDCW word ptr [ESP + 0x98]
FISTP word ptr [ESP + 0x8a]
FLDCW word ptr [ESP + 0x9a]
MOVZX EDX,word ptr [ESP + 0x8a]
MOVZX EDX,DL
MOV word ptr [ESP + 0x18],DX
FILD word ptr [ESP + 0x18]
FDIVRP
JMP 0x001ed0d2
FSTP ST0
JMP 0x001ed0d2
FSTP ST0
MOV EDX,dword ptr [EBX + 0x14]
FLDZ
FLD qword ptr [EBP + EDX*0x8]
FUCOMI ST0,ST0
JP 0x001ed150
FLDZ
FUCOMIP ST0,ST1
JNC 0x001ed158
FSTP ST1
FDIV dword ptr [EDI + 0xffeceff0]
FLD dword ptr [EDI + 0xffeceff4]
FLD ST0
FXCH ST2
FUCOMI ST0,ST2
FSTP ST2
JNC 0x001ed5f0
FXCH
FNSTCW word ptr [ESP + 0x9a]
FADD dword ptr [EDI + 0xffec6124]
MOVZX EDX,word ptr [ESP + 0x9a]
OR DH,0xc
MOV word ptr [ESP + 0x98],DX
FLDCW word ptr [ESP + 0x98]
FISTP word ptr [ESP + 0x8a]
FLDCW word ptr [ESP + 0x9a]
MOVZX EDX,word ptr [ESP + 0x8a]
MOVZX EDX,DL
MOV word ptr [ESP + 0x18],DX
FILD word ptr [ESP + 0x18]
FDIVRP
JMP 0x001ed15a
FSTP ST0
JMP 0x001ed15a
FSTP ST0
MOV EDX,dword ptr [EBX + 0x20]
FLDZ
FLD qword ptr [EBP + EDX*0x8]
FUCOMI ST0,ST0
JP 0x001ed1e0
FLDZ
FUCOMIP ST0,ST1
JNC 0x001ed1e8
FSTP ST1
FDIV dword ptr [EDI + 0xffeceff0]
FLD dword ptr [EDI + 0xffeceff4]
FLD ST0
FXCH ST2
FUCOMI ST0,ST2
FSTP ST2
JNC 0x001ed5d0
FXCH
FNSTCW word ptr [ESP + 0x9a]
FADD dword ptr [EDI + 0xffec6124]
MOVZX EDX,word ptr [ESP + 0x9a]
OR DH,0xc
MOV word ptr [ESP + 0x98],DX
FLDCW word ptr [ESP + 0x98]
FISTP word ptr [ESP + 0x8a]
FLDCW word ptr [ESP + 0x9a]
MOVZX EDX,word ptr [ESP + 0x8a]
MOVZX EDX,DL
MOV word ptr [ESP + 0x18],DX
FILD word ptr [ESP + 0x18]
FDIVRP
JMP 0x001ed1ea
FSTP ST0
JMP 0x001ed1ea
FSTP ST0
MOV EDX,dword ptr [ESP + 0x4f0]
TEST EDX,EDX
JZ 0x001ed540
ADD EAX,0x1
MOV dword ptr [ESP + 0x18],EAX
FILD dword ptr [ESP + 0x18]
FMUL dword ptr [EDI + 0xfff0024c]
ADD EBP,dword ptr [ESP + 0x1c]
TEST ESI,ESI
MOV dword ptr [ESP + 0x18],ESI
JLE 0x001ed26e
MOVZX ECX,byte ptr [ESP + 0x10]
LEA EAX,[ESP + 0x22c]
XOR EDX,EDX
SHR CL,0x7
MOV ESI,ESI
LEA EDI,[EDI]
FLD dword ptr [EAX]
FUCOMIP ST0,ST4
JP 0x001ed260
JNZ 0x001ed260
FLD dword ptr [EAX + 0x4]
FUCOMIP ST0,ST3
JP 0x001ed260
JNZ 0x001ed260
FLD dword ptr [EAX + 0x8]
FUCOMIP ST0,ST2
JP 0x001ed260
JNZ 0x001ed260
TEST CL,CL
JNZ 0x001ed598
CMP dword ptr [ESP + 0x14],0x35545844
JZ 0x001ed5a0
ADD EDX,0x1
ADD EAX,0x10
CMP EDX,ESI
JNZ 0x001ed230
FXCH ST3
JMP 0x001ed270
FXCH ST3
MOV EAX,ESI
MOV ECX,dword ptr [ESP + 0xc]
SHL EAX,0x4
FSTP dword ptr [ESP + EAX*0x1 + 0x22c]
FXCH
FSTP dword ptr [ESP + EAX*0x1 + 0x230]
FSTP dword ptr [ESP + EAX*0x1 + 0x234]
FSTP dword ptr [ESP + EAX*0x1 + 0x238]
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [EAX + ECX*0x1],ESI
ADD ESI,0x1
MOV dword ptr [ESP + 0x18],ESI
ADD dword ptr [ESP + 0xc],0x4
MOV EAX,dword ptr [ESP + 0xc]
CMP dword ptr [ESP + 0x20],EAX
JNZ 0x001ed020
MOV EAX,dword ptr [ESP + 0x1c]
IMUL EAX,dword ptr [ESP + 0x38]
ADD dword ptr [ESP + 0x44],EAX
ADD dword ptr [ESP + 0x2c],0x1
MOV EAX,dword ptr [ESP + 0x2c]
CMP EAX,dword ptr [ESP + 0x48]
JNZ 0x001ecfd4
TEST ESI,ESI
JLE 0x001ed30b
LEA EAX,[ESP + 0x238]
MOV EBP,ESI
SHL EBP,0x4
ADD EBP,EAX
LEA ESI,[ESI]
FLD dword ptr [EAX]
FLD ST0
FSQRT
FLDZ
FUCOMIP ST0,ST2
JA 0x001eeaf1
FSTP ST1
FSTP dword ptr [EAX]
ADD EAX,0x10
CMP EBP,EAX
JNZ 0x001ed2f0
CMP dword ptr [ESP + 0x14],0x35545844
JZ 0x001ee6f5
CMP ESI,0x1
JZ 0x001edc7b
FLDZ
FST dword ptr [ESP + 0xb4]
FST dword ptr [ESP + 0xb0]
FST dword ptr [ESP + 0xac]
FST dword ptr [ESP + 0xa8]
FST dword ptr [ESP + 0xa4]
FST dword ptr [ESP + 0xa0]
TEST ESI,ESI
JZ 0x001eebfc
FLDZ
MOV EDX,ESI
LEA EBX,[ESP + 0x22c]
SHL EDX,0x4
FLDZ
MOV dword ptr [ESP + 0x3c],EBX
MOV EAX,EBX
ADD EDX,EBX
FLDZ
FLD dword ptr [EAX + 0xc]
ADD EAX,0x10
FADD ST1,ST0
FLD dword ptr [EAX + -0x10]
FMUL ST1
FADDP ST3,ST0
FLD dword ptr [EAX + -0xc]
FMUL ST1
FADDP ST4,ST0
FMUL dword ptr [EAX + -0x8]
FADDP ST4,ST0
CMP EDX,EAX
JNZ 0x001ed370
FXCH ST2
FST dword ptr [ESP + 0x2c]
FXCH
FST dword ptr [ESP + 0x34]
FLD dword ptr [EDI + 0xfff00250]
FXCH ST3
FUCOMI ST0,ST3
FSTP ST3
JBE 0x001ed3b9
FDIV ST0,ST2
FSTP dword ptr [ESP + 0x34]
FDIV ST0,ST1
FSTP dword ptr [ESP + 0x2c]
FDIVP
JMP 0x001ed3bf
FSTP ST0
FSTP ST0
FSTP ST0
FLDZ
MOV EAX,dword ptr [ESP + 0x3c]
MOV EDX,ESI
FST dword ptr [ESP + 0x1c]
SHL EDX,0x4
FST dword ptr [ESP + 0xc]
FLDZ
FXCH
FST dword ptr [ESP + 0x10]
ADD EDX,EAX
FST dword ptr [ESP + 0x20]
FXCH ST2
FSTP dword ptr [ESP + 0x38]
LEA ESI,[ESI]
LEA EDI,[EDI]
FLD dword ptr [ESP + 0x34]
ADD EAX,0x10
FSUBR dword ptr [EAX + -0x10]
FLD dword ptr [ESP + 0x2c]
FSUBR dword ptr [EAX + -0xc]
FLD dword ptr [ESP + 0x38]
FSUBR dword ptr [EAX + -0x8]
FLD dword ptr [EAX + -0x4]
FLD ST2
FMUL ST1
FLD ST2
FMUL ST2
FXCH ST2
FMUL ST5
FMUL ST5
FADD dword ptr [ESP + 0x20]
FSTP dword ptr [ESP + 0x20]
FLD ST4
FMUL ST1
FADDP ST7,ST0
FXCH ST4
FMUL ST1
FADD dword ptr [ESP + 0x10]
FSTP dword ptr [ESP + 0x10]
FXCH ST3
FMUL ST2
FADDP ST4,ST0
FXCH
FMUL ST2
FADD dword ptr [ESP + 0xc]
FSTP dword ptr [ESP + 0xc]
FMULP
FADD dword ptr [ESP + 0x1c]
FSTP dword ptr [ESP + 0x1c]
CMP EDX,EAX
JNZ 0x001ed3f0
FSTP dword ptr [ESP + 0x2c]
FLD1
MOV EAX,0x8
FLD1
FLD1
FLD qword ptr [EDI + 0xffec6138]
JMP 0x001ed4a5
FSTP ST5
FXCH
FXCH ST2
FXCH ST3
FXCH ST4
FDIVR dword ptr [EDI + 0xffec6718]
FSTP dword ptr [ESP + 0x9c]
FLD dword ptr [ESP + 0x9c]
SUB EAX,0x1
FMUL ST1
FMUL ST4
FMULP ST3
JZ 0x001ed633
FXCH
FXCH ST2
FXCH ST3
FXCH ST2
FLD dword ptr [ESP + 0x20]
FMUL ST2
FLD ST5
FMUL ST4
FADDP
FLD dword ptr [ESP + 0x10]
FMUL ST5
FADDP
FLD ST5
FMUL ST3
FLD dword ptr [ESP + 0x2c]
FMUL ST5
FADDP
FLD dword ptr [ESP + 0xc]
FMUL ST6
FADDP
FXCH ST3
FMUL dword ptr [ESP + 0x10]
FXCH ST4
FMUL dword ptr [ESP + 0xc]
FADDP ST4,ST0
FXCH ST4
FMUL dword ptr [ESP + 0x1c]
FADDP ST3,ST0
FLD ST2
FXCH ST2
FUCOMI ST0,ST3
FXCH ST3
FCMOVNBE ST0,ST3
FLD ST4
FUCOMI ST0,ST1
JA 0x001ed510
FSTP ST5
FXCH
FXCH ST2
FXCH ST3
FXCH ST4
FXCH
FXCH ST4
FXCH ST3
FXCH ST2
FXCH
JMP 0x001ed512
FSTP ST1
FLD ST4
FLDZ
FUCOMIP ST0,ST6
JA 0x001ed610
FLD1
FXCH ST6
FUCOMIP ST0,ST3
JNC 0x001ed470
FSTP ST0
FXCH ST4
FDIV ST0,ST1
FXCH
FXCH ST2
FXCH ST3
FXCH ST4
FXCH
JMP 0x001ed480
FLD1
JMP 0x001ed20a
MOV ECX,dword ptr [ESP + 0x30]
MOV EDX,dword ptr [ECX + 0x2a8]
MOV ECX,dword ptr [EDX + 0x34]
TEST ECX,ECX
JZ 0x001ed600
MOV EDX,dword ptr [EDX + 0x38]
FLD qword ptr [EBP + EDX*0x8]
FUCOMI ST0,ST0
JP 0x001ed57e
FLDZ
FUCOMIP ST0,ST1
JC 0x001edbcf
FSTP ST0
JMP 0x001ed580
FSTP ST0
XOR EAX,EAX
MOV byte ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0x3c],0x0
JMP 0x001ed038
FSTP ST2
FSTP ST0
FSTP ST1
JMP 0x001ed5a6
FSTP ST2
FSTP ST0
FSTP ST1
MOV EAX,EDX
MOV ECX,dword ptr [ESP + 0xc]
SHL EAX,0x4
FADD dword ptr [ESP + EAX*0x1 + 0x238]
FSTP dword ptr [ESP + EAX*0x1 + 0x238]
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [EAX + ECX*0x1],EDX
JMP 0x001ed2a5
FSTP ST0
FSTP ST0
FLD1
JMP 0x001ed1ea
FSTP ST0
FSTP ST0
FLD1
JMP 0x001ed0d2
FSTP ST0
FSTP ST0
FLD1
JMP 0x001ed15a
FSTP ST0
LEA ESI,[ESI]
MOV dword ptr [ESP + 0x34],0xff
JMP 0x001ed038
FSTP ST5
FXCH
FXCH ST2
FXCH ST3
FXCH ST4
FLD ST0
FCHS
FLD1
FCHS
FXCH ST6
FXCH ST5
FXCH ST4
FXCH ST3
FXCH ST2
FXCH
JMP 0x001ed522
FSTP ST4
FSTP ST0
FXCH
FXCH ST2
MOV EDX,dword ptr [ESP + 0x84]
XOR EDX,0x1
AND EDX,0x1
TEST ESI,ESI
SETZ AL
OR DL,AL
JNZ 0x001edf50
FSTP dword ptr [ESP + 0xb8]
FXCH
LEA EDX,[ESP + 0x22c]
XOR EBX,EBX
SUB ESP,0x4
FSTP dword ptr [ESP + 0xc0]
FSTP dword ptr [ESP + 0xc4]
MOV dword ptr [ESP + 0x120],0x3de38e39
FLD1
FST dword ptr [ESP + 0xd4]
FST dword ptr [ESP + 0xd8]
FST dword ptr [ESP + 0xdc]
FSTP dword ptr [ESP + 0xe0]
FLD dword ptr [EDI + 0xffec6124]
FST dword ptr [ESP + 0x110]
FST dword ptr [ESP + 0x10c]
FST dword ptr [ESP + 0x108]
FSTP dword ptr [ESP + 0x104]
FLD dword ptr [EDI + 0xffed1bd0]
FST dword ptr [ESP + 0x130]
FST dword ptr [ESP + 0x12c]
FST dword ptr [ESP + 0x128]
FSTP dword ptr [ESP + 0x124]
FLD dword ptr [EDI + 0xfff00260]
FST dword ptr [ESP + 0x11c]
FST dword ptr [ESP + 0x118]
FSTP dword ptr [ESP + 0x114]
FLD dword ptr [EDI + 0xfff0025c]
FST dword ptr [ESP + 0x14c]
FST dword ptr [ESP + 0x148]
FSTP dword ptr [ESP + 0x144]
FLD dword ptr [EDI + 0xfff00264]
FST dword ptr [ESP + 0x140]
FST dword ptr [ESP + 0x13c]
FST dword ptr [ESP + 0x138]
MOV dword ptr [ESP + 0x150],0x3ee38e39
FSTP dword ptr [ESP + 0x134]
FLD dword ptr [EDI + 0xffeeced8]
FST dword ptr [ESP + 0xe4]
FSTP dword ptr [ESP + 0xec]
FLDZ
MOV dword ptr [ESP + 0x40],EDX
FST dword ptr [ESP + 0xf0]
FLD dword ptr [EDI + 0xfff00254]
FST dword ptr [ESP + 0xf4]
FSTP dword ptr [ESP + 0xfc]
FST dword ptr [ESP + 0x100]
FST dword ptr [ESP + 0x154]
FST dword ptr [ESP + 0x158]
FST dword ptr [ESP + 0x15c]
FSTP dword ptr [ESP + 0x160]
MOV dword ptr [ESP + 0xe8],0x427c0000
MOV dword ptr [ESP + 0xf8],0x3c820821
PUSH 0x0
LEA EBP,[ESP + 0x454]
PUSH EBP
LEA EAX,[ESP + 0x15c]
MOV dword ptr [ESP + 0x40],EAX
PUSH EAX
LEA EAX,[ESP + 0x33c]
MOV dword ptr [ESP + 0x1c],EAX
PUSH EAX
MOV EAX,ESI
PUSH dword ptr [ESP + 0xd4]
PUSH dword ptr [ESP + 0xd4]
PUSH dword ptr [ESP + 0xd4]
CALL 0x001e9500
ADD ESP,0x20
XOR ECX,ECX
FLD dword ptr [EDI + 0xfff00248]
LEA EAX,[ESP + 0xa0]
MOV dword ptr [ESP + 0x38],ESI
MOV ESI,ECX
MOV dword ptr [ESP + 0x5c],EAX
LEA EAX,[ESP + 0xac]
MOV dword ptr [ESP + 0x60],EAX
LEA EAX,[ESP + 0xd0]
MOV dword ptr [ESP + 0x68],EAX
LEA EAX,[ESP + 0xe0]
MOV dword ptr [ESP + 0x6c],EAX
LEA EAX,[ESP + 0xf0]
MOV dword ptr [ESP + 0x70],EAX
LEA EAX,[ESP + 0x100]
MOV dword ptr [ESP + 0x74],EAX
LEA EAX,[ESP + 0x110]
MOV dword ptr [ESP + 0x44],EAX
LEA EAX,[ESP + 0x120]
MOV dword ptr [ESP + 0x48],EAX
LEA EAX,[ESP + 0x130]
MOV dword ptr [ESP + 0x4c],EAX
LEA EAX,[ESP + 0x140]
MOV dword ptr [ESP + 0x54],EAX
LEA EAX,[ESP + 0x160]
MOV dword ptr [ESP + 0x58],EAX
LEA EAX,[EDI + 0xffe13120]
MOV dword ptr [ESP + 0x40],EBP
MOV EBP,EBX
MOV dword ptr [ESP + 0x20],0x0
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x10],0x0
FSTP dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x64],EAX
SUB ESP,0xc
MOV EBX,EDI
PUSH 0x7
CALL 0x00032640
MOV ECX,dword ptr [ESP + 0x78]
MOV dword ptr [ESP + 0x1a8],EBP
MOV EDX,dword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x1b8],ESI
MOV EBX,dword ptr [ESP + 0x6c]
MOV EBP,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x174],ECX
MOV ECX,dword ptr [ESP + 0x7c]
MOV dword ptr [ESP + 0x194],EDX
MOV EDX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x17c],EBX
MOV EBX,dword ptr [ESP + 0x70]
FLD dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x1ac],EBP
MOV dword ptr [ESP + 0x180],ECX
MOV ECX,dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0x198],EDX
MOV EDX,dword ptr [ESP + 0x64]
MOV dword ptr [ESP + 0x178],EBX
MOV EBX,dword ptr [ESP + 0x48]
FSTP dword ptr [ESP + 0x1a4]
MOV dword ptr [ESP + 0x184],ECX
MOV ECX,dword ptr [ESP + 0x84]
MOV dword ptr [ESP + 0x19c],EDX
MOV EDX,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x170],EBX
MOV EBX,EDI
MOV dword ptr [ESP + 0x188],ECX
MOV ECX,dword ptr [ESP + 0x54]
MOV dword ptr [ESP + 0x1a0],EDX
MOV dword ptr [ESP + 0x18c],ECX
MOV ECX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x190],ECX
MOV EBP,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x1b0],EBP
MOV EBP,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x1b4],EBP
PUSH 0x0
PUSH EAX
PUSH dword ptr [ESP + 0x70]
PUSH dword ptr [ESP + 0x80]
CALL 0x000324d0
MOV EAX,dword ptr [ESP + 0x1bc]
MOV EBP,dword ptr [ESP + 0x1b8]
FLD dword ptr [ESP + 0x1b4]
FSTP dword ptr [ESP + 0x4c]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x1c0]
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [ESP + 0x1c4]
MOV dword ptr [ESP + 0x40],EAX
ADD ESP,0x20
CMP ESI,EBP
JNZ 0x001eda60
ADD ESI,0x1
CMP ESI,0x8
JZ 0x001ee14b
FLD dword ptr [ESP + 0xa0]
SUB ESP,0x4
FSUB dword ptr [ESP + 0xb0]
FSTP dword ptr [ESP + 0xc8]
FLD dword ptr [ESP + 0xb4]
FSUBR dword ptr [ESP + 0xa8]
FSTP dword ptr [ESP + 0xcc]
FLD dword ptr [ESP + 0xb8]
FSUBR dword ptr [ESP + 0xac]
FSTP dword ptr [ESP + 0xd0]
PUSH ESI
PUSH dword ptr [ESP + 0x48]
PUSH dword ptr [ESP + 0x40]
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0xe0]
PUSH dword ptr [ESP + 0xe0]
PUSH dword ptr [ESP + 0xe0]
MOV EDX,dword ptr [ESP + 0x5c]
MOV EAX,dword ptr [ESP + 0x58]
CALL 0x001e9500
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x001ed8aa
MOV EAX,EBP
MOV EBP,dword ptr [ESP + 0x40]
MOV EBX,dword ptr [ESP + 0x10]
MOV EDX,EAX
SHL EDX,0x4
ADD EDX,EBP
TEST EBX,EBX
JLE 0x001eda92
MOV EAX,EDX
ADD EBX,EDX
LEA ESI,[ESI]
MOVZX ECX,byte ptr [EAX]
ADD EAX,0x1
MOV byte ptr [ESP + ECX*0x1 + 0x43c],0x0
CMP EBX,EAX
JNZ 0x001eda80
MOV EAX,dword ptr [ESP + 0x10]
MOV EBX,dword ptr [ESP + 0x1c]
CMP EAX,EBX
JGE 0x001edaba
ADD EAX,EDX
ADD EBX,EDX
LEA ESI,[ESI]
MOVZX ECX,byte ptr [EAX]
ADD EAX,0x1
MOV byte ptr [ESP + ECX*0x1 + 0x43c],0x2
CMP EBX,EAX
JNZ 0x001edaa8
MOV EBX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [ESP + 0x1c]
CMP EBX,EAX
JLE 0x001edae2
ADD EAX,EDX
ADD EBX,EDX
LEA ESI,[ESI]
MOVZX ECX,byte ptr [EAX]
ADD EAX,0x1
MOV byte ptr [ESP + ECX*0x1 + 0x43c],0x3
CMP EBX,EAX
JNZ 0x001edad0
MOV EAX,dword ptr [ESP + 0x20]
MOV EBX,dword ptr [ESP + 0x18]
CMP EAX,EBX
JGE 0x001edb0a
ADD EAX,EDX
ADD EDX,EBX
LEA ESI,[ESI]
MOVZX ECX,byte ptr [EAX]
ADD EAX,0x1
MOV byte ptr [ESP + ECX*0x1 + 0x43c],0x1
CMP EDX,EAX
JNZ 0x001edaf8
LEA ECX,[ESP + 0x42c]
XOR EAX,EAX
MOV EBX,dword ptr [ESP + 0x24]
JMP 0x001edb33
MOVZX EDX,byte ptr [ESP + EDX*0x1 + 0x43c]
MOV byte ptr [ECX + EAX*0x1],DL
ADD EAX,0x1
CMP EAX,0x10
JZ 0x001edb47
MOV EDX,dword ptr [EBX + EAX*0x4]
CMP EDX,-0x1
JNZ 0x001edb20
MOV byte ptr [ECX + EAX*0x1],0x3
ADD EAX,0x1
CMP EAX,0x10
JNZ 0x001edb33
SUB ESP,0x4
PUSH ECX
PUSH dword ptr [ESP + 0xb0]
PUSH dword ptr [ESP + 0xb0]
PUSH dword ptr [ESP + 0xb0]
PUSH dword ptr [ESP + 0xc8]
PUSH dword ptr [ESP + 0xc8]
PUSH dword ptr [ESP + 0xc8]
MOV EAX,dword ptr [ESP + 0x50]
CALL 0x001e9760
ADD ESP,0x20
MOV EBX,dword ptr [ESP + 0x30]
MOV EDX,dword ptr [ESP + 0x50]
MOV EAX,dword ptr [EBX + 0x18]
MOV EBX,dword ptr [EBX + 0x1c]
CMP EAX,EDX
JG 0x001ecf1c
MOV EAX,dword ptr [ESP + 0x7c]
CMP EBX,EAX
MOV dword ptr [ESP + 0x78],EAX
JG 0x001ecef5
MOV EAX,dword ptr [ESP + 0x4cc]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x001eebc1
ADD ESP,0x4dc
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x18],ESI
JMP 0x001ed2c5
FDIV dword ptr [EDI + 0xffeceff0]
FLD dword ptr [EDI + 0xffeceff4]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x001ed5fb
FNSTCW word ptr [ESP + 0x9a]
MOV ECX,dword ptr [ESP + 0x3c]
FADD dword ptr [EDI + 0xffec6124]
MOVZX EAX,word ptr [ESP + 0x9a]
OR AH,0xc
MOV word ptr [ESP + 0x98],AX
FLDCW word ptr [ESP + 0x98]
FISTP word ptr [ESP + 0x8a]
FLDCW word ptr [ESP + 0x9a]
MOVZX EDX,word ptr [ESP + 0x8a]
MOVZX EAX,DL
MOV byte ptr [ESP + 0x10],DL
CMP ECX,EAX
CMOVA ECX,EAX
MOV dword ptr [ESP + 0x3c],ECX
MOV ECX,dword ptr [ESP + 0x34]
CMP ECX,EAX
CMOVC ECX,EAX
MOV dword ptr [ESP + 0x34],ECX
TEST DL,DL
JZ 0x001ee1ba
MOV ECX,dword ptr [ESP + 0x40]
CMP ECX,EAX
CMOVA ECX,EAX
MOV dword ptr [ESP + 0x40],ECX
CMP DL,0xff
JNZ 0x001edc69
MOV EAX,0xff
JMP 0x001ed038
MOV ECX,dword ptr [ESP + 0x4c]
CMP ECX,EAX
CMOVC ECX,EAX
MOV dword ptr [ESP + 0x4c],ECX
JMP 0x001ed038
FNSTCW word ptr [ESP + 0x9a]
FLD dword ptr [EDI + 0xffeceff4]
MOV ECX,0xff
MOV dword ptr [ESP + 0x10],0xffffffff
FLD dword ptr [ESP + 0x22c]
MOV dword ptr [ESP + 0xc],0x0
FMUL ST1
MOVZX EAX,word ptr [ESP + 0x9a]
FLD dword ptr [EDI + 0xffec6124]
FADD ST1,ST0
FXCH
OR AH,0xc
MOV word ptr [ESP + 0x98],AX
FLDCW word ptr [ESP + 0x98]
FISTP dword ptr [ESP + 0x8c]
FLDCW word ptr [ESP + 0x9a]
FLD dword ptr [ESP + 0x230]
FMUL ST2
MOV EAX,dword ptr [ESP + 0x8c]
CMP EAX,0xff
CMOVA EAX,ECX
FADD ST0,ST1
MOV ESI,EAX
MOV byte ptr [ESP + 0x42c],AL
FLDCW word ptr [ESP + 0x98]
FISTP dword ptr [ESP + 0x8c]
FLDCW word ptr [ESP + 0x9a]
FXCH
MOV EAX,dword ptr [ESP + 0x8c]
FMUL dword ptr [ESP + 0x234]
CMP EAX,0xff
CMOVA EAX,ECX
FADDP
MOV byte ptr [ESP + 0x42d],AL
MOVZX EAX,AL
FLDCW word ptr [ESP + 0x98]
FISTP dword ptr [ESP + 0x8c]
FLDCW word ptr [ESP + 0x9a]
MOV EDX,dword ptr [ESP + 0x8c]
LEA EAX,[EAX + EAX*0x2]
CMP EDX,0xff
CMOVA EDX,ECX
MOV ECX,dword ptr [EDI + 0x34cc]
ADD EAX,EAX
XOR EBX,EBX
MOV dword ptr [ESP + 0x1c],EAX
MOV byte ptr [ESP + 0x42e],DL
MOVZX EDX,DL
LEA EAX,[EDX + EDX*0x2]
MOV byte ptr [ESP + 0x3c],BL
MOV dword ptr [ESP + 0x38],ECX
LEA ECX,[0x34d0]
ADD EAX,EAX
MOV dword ptr [ESP + 0x2c],ECX
LEA ECX,[0x34d4]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,ESI
MOV dword ptr [ESP + 0x34],ECX
MOV EBX,dword ptr [ESP + 0xc]
MOVZX EAX,AL
LEA EAX,[EAX + EAX*0x2]
MOV ECX,dword ptr [ESP + 0x1c]
MOV EBP,dword ptr [ESP + 0x20]
LEA EDX,[EBX + EBX*0x1]
ADD EDX,EBX
MOV EBX,dword ptr [ESP + 0x38]
LEA EBX,[EBX + EAX*0x2]
MOV EAX,dword ptr [ESP + 0x2c]
ADD EBX,EDX
MOVZX ESI,byte ptr [EBX + 0x2]
ADD ECX,dword ptr [EAX + EDI*0x1]
IMUL ESI,ESI
ADD ECX,EDX
MOVZX EAX,byte ptr [ECX + 0x2]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x34]
ADD EBP,dword ptr [EAX + EDI*0x1]
MOV EAX,dword ptr [ESP + 0x18]
ADD EDX,EBP
MOVZX EBP,byte ptr [EDX + 0x2]
IMUL EAX,EAX
IMUL EBP,EBP
ADD EAX,EBP
ADD EAX,ESI
CMP EAX,dword ptr [ESP + 0x10]
JA 0x001ede98
MOVZX ESI,byte ptr [EBX]
MOV word ptr [ESP + 0x10],SI
FILD word ptr [ESP + 0x10]
FLD dword ptr [EDI + 0xffeeced8]
FDIV ST1,ST0
FXCH
FSTP dword ptr [ESP + 0x150]
MOVZX ESI,byte ptr [ECX]
MOV word ptr [ESP + 0x10],SI
FILD word ptr [ESP + 0x10]
FLD dword ptr [EDI + 0xffef381c]
FDIV ST1,ST0
FXCH
FSTP dword ptr [ESP + 0x154]
MOVZX ESI,byte ptr [EDX]
MOV word ptr [ESP + 0x10],SI
FILD word ptr [ESP + 0x10]
FDIV ST0,ST2
FSTP dword ptr [ESP + 0x158]
MOVZX EBX,byte ptr [EBX + 0x1]
MOV word ptr [ESP + 0x10],BX
FILD word ptr [ESP + 0x10]
FDIV ST0,ST2
MOVZX EBX,byte ptr [ESP + 0xc]
ADD EBX,EBX
MOV byte ptr [ESP + 0x3c],BL
FSTP dword ptr [ESP + 0x160]
MOVZX ECX,byte ptr [ECX + 0x1]
MOV word ptr [ESP + 0x10],CX
FILD word ptr [ESP + 0x10]
FDIVRP
FSTP dword ptr [ESP + 0x164]
MOVZX EDX,byte ptr [EDX + 0x1]
MOV word ptr [ESP + 0x10],DX
FILD word ptr [ESP + 0x10]
FDIVRP
MOV dword ptr [ESP + 0x10],EAX
FSTP dword ptr [ESP + 0x168]
CMP dword ptr [ESP + 0xc],0x1
JZ 0x001edeb4
MOVZX EAX,byte ptr [ESP + 0x42c]
MOV dword ptr [ESP + 0xc],0x1
JMP 0x001edd9b
MOVZX EBX,byte ptr [ESP + 0x3c]
LEA EAX,[ESP + 0x43c]
LEA EBP,[ESP + 0x44c]
MOV ESI,ESI
LEA EDI,[EDI]
MOV byte ptr [EAX],BL
ADD EAX,0x1
CMP EBP,EAX
JNZ 0x001eded0
XOR EAX,EAX
MOV ECX,dword ptr [ESP + 0x24]
JMP 0x001edefc
MOVZX EDX,byte ptr [ESP + EDX*0x1 + 0x43c]
MOV byte ptr [EBP + EAX*0x1],DL
ADD EAX,0x1
CMP EAX,0x10
JZ 0x001edf11
MOV EDX,dword ptr [ECX + EAX*0x4]
CMP EDX,-0x1
JNZ 0x001edee8
MOV byte ptr [EBP + EAX*0x1],0x3
ADD EAX,0x1
CMP EAX,0x10
JNZ 0x001edefc
SUB ESP,0x4
PUSH EBP
PUSH dword ptr [ESP + 0x170]
PUSH dword ptr [ESP + 0x170]
PUSH dword ptr [ESP + 0x170]
PUSH dword ptr [ESP + 0x16c]
PUSH dword ptr [ESP + 0x16c]
PUSH dword ptr [ESP + 0x16c]
MOV EAX,dword ptr [ESP + 0x50]
CALL 0x001e9760
ADD ESP,0x20
JMP 0x001edb81
TEST ESI,ESI
JZ 0x001ee1c1
FLD dword ptr [ESP + 0x22c]
FLD dword ptr [ESP + 0x230]
FLD dword ptr [ESP + 0x234]
FXCH ST2
FST dword ptr [ESP + 0xac]
FXCH
MOV EBX,dword ptr [ESP + 0x18]
FST dword ptr [ESP + 0xb0]
FXCH ST2
FST dword ptr [ESP + 0xb4]
FXCH
FST dword ptr [ESP + 0xa0]
FXCH ST2
FST dword ptr [ESP + 0xa4]
FXCH
CMP EBX,0x1
FST dword ptr [ESP + 0xa8]
FLD ST3
FMUL ST3
FLD ST6
FMUL ST3
FADDP
FLD ST5
FMUL ST2
FADDP
FST dword ptr [ESP + 0xc]
JLE 0x001ee0f0
FXCH
FST dword ptr [ESP + 0x38]
FXCH ST2
SHL EBX,0x4
XOR EBP,EBP
XOR ESI,ESI
FST dword ptr [ESP + 0x40]
FXCH ST3
LEA ECX,[ESP + EBX*0x1 + 0x21c]
XOR EBX,EBX
FST dword ptr [ESP + 0x34]
LEA EAX,[ESP + 0x22c]
FST dword ptr [ESP + 0x10]
FXCH
FSTP dword ptr [ESP + 0x1c]
FSTP dword ptr [ESP + 0x44]
FXCH
FSTP dword ptr [ESP + 0x20]
MOV byte ptr [ESP + 0x3c],0x0
FSTP dword ptr [ESP + 0x2c]
JMP 0x001ee047
FLD dword ptr [ESP + 0x1c]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JBE 0x001ee038
FXCH
FSTP dword ptr [ESP + 0x38]
FXCH
MOV EBP,EDX
MOV ESI,EDX
FSTP dword ptr [ESP + 0x40]
FXCH
FSTP dword ptr [ESP + 0x34]
MOV byte ptr [ESP + 0x3c],DL
FSTP dword ptr [ESP + 0x1c]
JMP 0x001ee040
FSTP ST0
FSTP ST0
FSTP ST0
FSTP ST0
ADD EAX,0x10
CMP EAX,ECX
JZ 0x001ee08f
FLD dword ptr [EAX + 0x10]
FLD dword ptr [EAX + 0x14]
FLD dword ptr [EAX + 0x18]
FLD ST3
FMUL ST3
FLD ST6
FMUL ST3
FADDP
FLD ST5
FMUL ST2
FADDP
FLD dword ptr [ESP + 0xc]
FUCOMIP ST0,ST1
JBE 0x001ee00c
FXCH
FSTP dword ptr [ESP + 0x2c]
FXCH
ADD EAX,0x10
MOV EBX,EDX
FSTP dword ptr [ESP + 0x20]
FXCH
FSTP dword ptr [ESP + 0x10]
FSTP dword ptr [ESP + 0xc]
CMP EAX,ECX
JNZ 0x001ee047
FSTP ST0
FSTP ST0
FSTP ST0
JMP 0x001ee095
FSTP ST0
FSTP ST0
FSTP ST0
FLD dword ptr [ESP + 0x44]
FLD dword ptr [ESP + 0x20]
FLD dword ptr [ESP + 0x2c]
TEST BL,BL
JNZ 0x001eebc6
FSTP ST0
FSTP ST0
MOV EAX,ESI
TEST AL,AL
JZ 0x001ee0be
FLD dword ptr [ESP + 0x34]
FSTP dword ptr [ESP + 0xa0]
MOV EAX,EBP
TEST AL,AL
JZ 0x001ee0cf
FLD dword ptr [ESP + 0x40]
FSTP dword ptr [ESP + 0xa4]
CMP byte ptr [ESP + 0x3c],0x0
FLD dword ptr [ESP + 0xb0]
FLD dword ptr [ESP + 0xb4]
JNZ 0x001eec17
JMP 0x001ee0f8
FSTP ST0
FSTP ST3
FSTP ST3
FSTP ST3
FLDZ
FUCOMIP ST0,ST3
JBE 0x001eeba6
FSTP ST2
FXCH
FLD dword ptr [EDI + 0xffec6124]
FLD ST0
FLDZ
FUCOMIP ST0,ST4
JBE 0x001eeb81
FSTP ST3
FXCH
FXCH ST2
FLD dword ptr [EDI + 0xffec6124]
FLDZ
FUCOMIP ST0,ST4
JBE 0x001ee1f3
FSTP ST3
FXCH ST2
JMP 0x001ee13a
FSTP ST3
FXCH
FXCH ST2
FLD dword ptr [EDI + 0xffec6124]
FXCH ST3
FXCH ST2
FXCH
JMP 0x001ee219
MOV EBP,dword ptr [ESP + 0x40]
MOV EAX,0x7
JMP 0x001eda66
CMP dword ptr [ESP + 0x14],0x35545844
JZ 0x001eeb52
FLDZ
MOV dword ptr [ESP + 0x18],0x0
XOR ESI,ESI
FST dword ptr [ESP + 0xb4]
FST dword ptr [ESP + 0xb0]
FST dword ptr [ESP + 0xac]
FST dword ptr [ESP + 0xa8]
FST dword ptr [ESP + 0xa4]
FST dword ptr [ESP + 0xa0]
FST dword ptr [ESP + 0x1c]
FST dword ptr [ESP + 0xc]
FST dword ptr [ESP + 0x2c]
FST dword ptr [ESP + 0x10]
FLDZ
FXCH
FSTP dword ptr [ESP + 0x20]
JMP 0x001ed457
XOR EAX,EAX
JMP 0x001ed038
FSTP ST0
FSTP ST0
FSTP ST0
FLDZ
FLDZ
FLD dword ptr [EDI + 0xffec6124]
FLD ST0
FXCH ST2
JMP 0x001ee1db
FXCH ST2
FXCH ST3
FMUL dword ptr [EDI + 0xffef381c]
FADD dword ptr [EDI + 0xffec6124]
FLDZ
FUCOMIP ST0,ST4
JA 0x001ee134
JMP 0x001ee1f9
FXCH
FXCH ST2
FXCH
FLD1
FXCH ST4
FUCOMI ST0,ST4
FSTP ST4
JA 0x001eea45
FXCH ST3
FMUL dword ptr [EDI + 0xffeeced8]
FLD dword ptr [EDI + 0xffec6124]
FADDP
FXCH ST3
FSTP dword ptr [ESP + 0xb0]
FXCH ST2
FSTP dword ptr [ESP + 0xb4]
FLDZ
FXCH ST2
FUCOMIP ST0,ST2
FSTP ST1
JBE 0x001eea01
FNSTCW word ptr [ESP + 0x150]
MOVZX EAX,word ptr [ESP + 0x150]
AND EAX,0xf3ff
OR EAX,0x400
MOV word ptr [ESP + 0x160],AX
FLDCW word ptr [ESP + 0x160]
FRNDINT
FLDCW word ptr [ESP + 0x150]
FSTP qword ptr [ESP + 0x90]
FLD qword ptr [ESP + 0x90]
FSTP dword ptr [ESP + 0xac]
FLD dword ptr [ESP + 0xb0]
FLD ST0
FLDZ
FXCH ST2
FUCOMIP ST0,ST2
FSTP ST1
JBE 0x001ee9bd
FNSTCW word ptr [ESP + 0x150]
MOVZX EAX,word ptr [ESP + 0x150]
AND EAX,0xf3ff
OR EAX,0x400
MOV word ptr [ESP + 0x160],AX
FLDCW word ptr [ESP + 0x160]
FRNDINT
FLDCW word ptr [ESP + 0x150]
FSTP qword ptr [ESP + 0x90]
FLD qword ptr [ESP + 0x90]
FSTP dword ptr [ESP + 0xb0]
FLD dword ptr [ESP + 0xb4]
FLD ST0
FLDZ
FXCH ST2
FUCOMIP ST0,ST2
FSTP ST1
JBE 0x001ee86c
FNSTCW word ptr [ESP + 0x150]
MOVZX EAX,word ptr [ESP + 0x150]
AND EAX,0xf3ff
OR EAX,0x400
MOV word ptr [ESP + 0x160],AX
FLDCW word ptr [ESP + 0x160]
FRNDINT
FLDCW word ptr [ESP + 0x150]
FSTP qword ptr [ESP + 0x90]
FLD qword ptr [ESP + 0x90]
FLD dword ptr [EDI + 0xfff00254]
FLD dword ptr [ESP + 0xac]
FMUL ST1
FSTP dword ptr [ESP + 0xac]
FLD dword ptr [EDI + 0xfff00258]
FMUL dword ptr [ESP + 0xb0]
FSTP dword ptr [ESP + 0xb0]
FXCH
FSTP dword ptr [ESP + 0x9c]
FLD dword ptr [ESP + 0x9c]
FMULP
FSTP dword ptr [ESP + 0xb4]
FLD dword ptr [ESP + 0xa0]
FLDZ
FUCOMIP ST0,ST1
JA 0x001ee8b0
FLD1
FXCH
FUCOMI ST0,ST1
FSTP ST1
JBE 0x001ee7f6
FSTP ST0
FLD dword ptr [EDI + 0xfff00240]
FLD ST0
FLD dword ptr [ESP + 0xa4]
FLDZ
FUCOMIP ST0,ST1
JA 0x001ee81b
FLD1
FXCH
FUCOMI ST0,ST1
FSTP ST1
JBE 0x001ee7c6
FSTP ST0
FLD dword ptr [EDI + 0xfff00244]
FLD dword ptr [ESP + 0xa8]
FLDZ
FUCOMIP ST0,ST1
JA 0x001ee7e7
FLD1
FXCH
FUCOMI ST0,ST1
FSTP ST1
JA 0x001ee9ae
FMUL dword ptr [EDI + 0xffeeced8]
FADD dword ptr [EDI + 0xffec6124]
FXCH
FSTP dword ptr [ESP + 0xa4]
FSTP dword ptr [ESP + 0xa8]
FLDZ
FXCH ST2
FUCOMIP ST0,ST2
FSTP ST1
JBE 0x001ee96a
FNSTCW word ptr [ESP + 0x150]
MOVZX EAX,word ptr [ESP + 0x150]
AND EAX,0xf3ff
OR EAX,0x400
MOV word ptr [ESP + 0x160],AX
FLDCW word ptr [ESP + 0x160]
FRNDINT
FLDCW word ptr [ESP + 0x150]
FSTP qword ptr [ESP + 0x90]
FLD qword ptr [ESP + 0x90]
FSTP dword ptr [ESP + 0xa0]
FLD dword ptr [ESP + 0xa4]
FLD ST0
FLDZ
FXCH ST2
FUCOMIP ST0,ST2
FSTP ST1
JBE 0x001eea91
FNSTCW word ptr [ESP + 0x150]
MOVZX EAX,word ptr [ESP + 0x150]
AND EAX,0xf3ff
OR EAX,0x400
MOV word ptr [ESP + 0x160],AX
FLDCW word ptr [ESP + 0x160]
FRNDINT
FLDCW word ptr [ESP + 0x150]
FSTP qword ptr [ESP + 0x90]
FLD qword ptr [ESP + 0x90]
FSTP dword ptr [ESP + 0xa4]
FLD dword ptr [ESP + 0xa8]
FLD ST0
FLDZ
FXCH ST2
FUCOMIP ST0,ST2
FSTP ST1
JBE 0x001ee828
FNSTCW word ptr [ESP + 0x150]
MOVZX EAX,word ptr [ESP + 0x150]
AND EAX,0xf3ff
OR EAX,0x400
MOV word ptr [ESP + 0x160],AX
FLDCW word ptr [ESP + 0x160]
FRNDINT
FLDCW word ptr [ESP + 0x150]
FSTP qword ptr [ESP + 0x90]
FLD qword ptr [ESP + 0x90]
FLD dword ptr [EDI + 0xfff00254]
FLD dword ptr [ESP + 0xa0]
FMUL ST1
MOV EAX,dword ptr [ESP + 0xac]
MOV dword ptr [ESP + 0x32c],EAX
MOV EAX,dword ptr [ESP + 0xb0]
FST dword ptr [ESP + 0xa0]
FLD dword ptr [EDI + 0xfff00258]
FMUL dword ptr [ESP + 0xa4]
MOV dword ptr [ESP + 0x330],EAX
MOV EAX,dword ptr [ESP + 0xb4]
FST dword ptr [ESP + 0xa4]
FXCH ST3
FSTP dword ptr [ESP + 0x9c]
FLD dword ptr [ESP + 0x9c]
FMULP ST2
FXCH
MOV dword ptr [ESP + 0x334],EAX
MOV EAX,dword ptr [ESP + 0xa0]
MOV dword ptr [ESP + 0x338],EAX
MOV EAX,dword ptr [ESP + 0xa4]
FST dword ptr [ESP + 0xa8]
FLD dword ptr [EDI + 0xfff0025c]
FLD dword ptr [ESP + 0xac]
FMUL ST1
FLD dword ptr [EDI + 0xfff00260]
MOV dword ptr [ESP + 0x33c],EAX
FLD ST4
MOV EAX,dword ptr [ESP + 0xa8]
FMUL ST1
MOV dword ptr [ESP + 0x340],EAX
FADDP ST2,ST0
FXCH
FSTP dword ptr [ESP + 0x344]
FLD dword ptr [ESP + 0xb0]
FMUL ST2
FLD ST5
FMUL ST2
FADDP
FSTP dword ptr [ESP + 0x348]
FLD dword ptr [ESP + 0xb4]
FLD ST0
FMUL ST3
FLD ST4
FMUL ST3
FADDP
FSTP dword ptr [ESP + 0x34c]
FLD dword ptr [ESP + 0xac]
FMUL ST2
FXCH ST5
FMUL ST3
FADDP ST5,ST0
FXCH ST4
FSTP dword ptr [ESP + 0x350]
FLD dword ptr [ESP + 0xb0]
FMUL ST1
FXCH ST5
FMUL ST2
FADDP ST5,ST0
FXCH ST4
FSTP dword ptr [ESP + 0x354]
FXCH ST3
MOV EAX,dword ptr [ESP + 0x18]
FMULP ST2
TEST EAX,EAX
FMULP ST2
FADDP
FSTP dword ptr [ESP + 0x358]
JLE 0x001ee6c1
LEA EBX,[ESP + 0x44c]
LEA ECX,[ESP + 0x22c]
ADD EAX,EBX
MOV ESI,EBX
MOV EBP,EAX
LEA EAX,[ESP + 0x32c]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0xc]
XOR EBX,EBX
XOR EDX,EDX
FLD dword ptr [ECX]
FLD dword ptr [ECX + 0x4]
FLD dword ptr [ECX + 0x8]
FLD dword ptr [EDI + 0xfff00248]
FLD dword ptr [EAX]
FSUBR ST0,ST4
FLD dword ptr [EAX + 0x4]
FSUBR ST0,ST4
FLD dword ptr [EAX + 0x8]
FSUBR ST0,ST4
FXCH ST2
FMUL ST0
FXCH
FMUL ST0
FADDP
FXCH
FMUL ST0
FADDP
FXCH
FUCOMI ST0,ST1
JBE 0x001ee6a0
FSTP ST0
MOV EBX,EDX
JMP 0x001ee6a2
FSTP ST1
ADD EDX,0x1
ADD EAX,0xc
CMP EDX,0x4
JNZ 0x001ee670
FSTP ST0
FSTP ST0
FSTP ST0
FSTP ST0
MOV byte ptr [ESI],BL
ADD ESI,0x1
ADD ECX,0x10
CMP ESI,EBP
JNZ 0x001ee65a
LEA ECX,[ESP + 0x42c]
XOR EAX,EAX
MOV EBX,dword ptr [ESP + 0x24]
JMP 0x001ee6e7
MOVZX EDX,byte ptr [ESP + EDX*0x1 + 0x44c]
MOV byte ptr [ECX + EAX*0x1],DL
ADD EAX,0x1
CMP EAX,0x10
JZ 0x001edb47
MOV EDX,dword ptr [EBX + EAX*0x4]
CMP EDX,-0x1
JNZ 0x001ee6d0
MOV byte ptr [ECX + EAX*0x1],0x3
JMP 0x001ee6db
MOV EBX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ESP + 0x4c]
CMP EBX,EAX
JA 0x001eeb18
SUB EAX,EBX
CMP EAX,0x4
JBE 0x001eeb20
SUB ESP,0x8
MOV ECX,0x5
LEA EAX,[ESP + 0x444]
MOV dword ptr [ESP + 0x14],EAX
PUSH EAX
PUSH dword ptr [ESP + 0x34]
MOV EDX,dword ptr [ESP + 0x5c]
MOV EAX,dword ptr [ESP + 0x50]
CALL 0x001e9410
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x3c]
MOV EBX,EAX
MOV EAX,dword ptr [ESP + 0x34]
CMP EAX,ECX
JC 0x001eea60
SUB EAX,ECX
CMP EAX,0x6
JBE 0x001eea5c
SUB ESP,0x8
MOV ECX,0x7
LEA EBP,[ESP + 0x454]
PUSH EBP
PUSH dword ptr [ESP + 0x34]
MOV EDX,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [ESP + 0x4c]
CALL 0x001e9410
ADD ESP,0x10
CMP EBX,EAX
JBE 0x001ee8bf
MOV dword ptr [ESP + 0x10],ESI
XOR EAX,EAX
XOR EBX,EBX
MOV ESI,dword ptr [ESP + 0xc]
JMP 0x001ee79b
MOV byte ptr [EAX + ESI*0x1],0x1
ADD EAX,0x1
CMP EAX,0x10
JZ 0x001ee7bd
MOVZX EDX,byte ptr [EBP + EAX*0x1]
TEST DL,DL
JZ 0x001ee78f
MOV ECX,0x9
SUB ECX,EDX
CMP DL,0x1
CMOVZ ECX,EBX
ADD EAX,0x1
MOV byte ptr [EAX + ESI*0x1 + -0x1],CL
CMP EAX,0x10
JNZ 0x001ee79b
MOV ESI,dword ptr [ESP + 0x10]
JMP 0x001ee8cf
FMUL dword ptr [EDI + 0xffef381c]
FADD dword ptr [EDI + 0xffec6124]
FLD dword ptr [ESP + 0xa8]
FLDZ
FUCOMIP ST0,ST1
JBE 0x001ee3d4
FSTP ST0
JMP 0x001ee7e9
FSTP ST0
FLD dword ptr [EDI + 0xffec6124]
FXCH
JMP 0x001ee3f0
FMUL dword ptr [EDI + 0xffeeced8]
FLD dword ptr [EDI + 0xffec6124]
FADDP
FLD ST0
FLD dword ptr [ESP + 0xa4]
FLDZ
FUCOMIP ST0,ST1
JBE 0x001ee3ad
FSTP ST0
JMP 0x001ee81d
FSTP ST0
FLD dword ptr [EDI + 0xffec6124]
JMP 0x001ee3c3
FNSTCW word ptr [ESP + 0x150]
MOVZX EAX,word ptr [ESP + 0x150]
AND EAX,0xf3ff
OR EAX,0x800
MOV word ptr [ESP + 0x160],AX
FLDCW word ptr [ESP + 0x160]
FRNDINT
FLDCW word ptr [ESP + 0x150]
FSTP qword ptr [ESP + 0x90]
FLD qword ptr [ESP + 0x90]
JMP 0x001ee505
FNSTCW word ptr [ESP + 0x150]
MOVZX EAX,word ptr [ESP + 0x150]
AND EAX,0xf3ff
OR EAX,0x800
MOV word ptr [ESP + 0x160],AX
FLDCW word ptr [ESP + 0x160]
FRNDINT
FLDCW word ptr [ESP + 0x150]
FSTP qword ptr [ESP + 0x90]
FLD qword ptr [ESP + 0x90]
JMP 0x001ee330
FSTP ST0
FLD dword ptr [EDI + 0xffec6124]
FLD ST0
JMP 0x001ee39c
MOV EAX,dword ptr [ESP + 0x4c]
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x34],EAX
SUB ESP,0x8
MOV EBX,EDI
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
CALL 0x00032b80
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x3c]
CALL 0x00032b80
MOV EAX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
MOV dword ptr [ESP + 0xc],EBP
MOV EBP,EAX
MOV dword ptr [ESP + 0x10],ESI
XOR ESI,ESI
XOR EAX,EAX
LEA ESI,[ESI]
MOVZX EDX,byte ptr [EBP + EAX*0x1]
LEA ECX,[EAX + EAX*0x2]
ADD EAX,0x1
SHL EDX,CL
OR ESI,EDX
CMP EAX,0x8
JNZ 0x001ee908
MOV EAX,ESI
SUB ESP,0x8
MOV EBX,EDI
MOVZX EAX,AL
ADD EBP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x00032b80
POP EAX
MOV EAX,ESI
POP EDX
MOVZX EAX,AH
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x00032b80
POP ECX
POP EAX
MOV EAX,ESI
SHR EAX,0x10
MOVZX EAX,AL
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x00032b80
ADD ESP,0x10
CMP dword ptr [ESP + 0xc],EBP
JNZ 0x001ee901
MOV ESI,dword ptr [ESP + 0x10]
JMP 0x001ed319
FNSTCW word ptr [ESP + 0x150]
MOVZX EAX,word ptr [ESP + 0x150]
AND EAX,0xf3ff
OR EAX,0x800
MOV word ptr [ESP + 0x160],AX
FLDCW word ptr [ESP + 0x160]
FRNDINT
FLDCW word ptr [ESP + 0x150]
FSTP qword ptr [ESP + 0x90]
FLD qword ptr [ESP + 0x90]
JMP 0x001ee44b
FSTP ST0
FLD dword ptr [EDI + 0xfff00240]
FXCH
JMP 0x001ee3f0
FNSTCW word ptr [ESP + 0x150]
MOVZX EAX,word ptr [ESP + 0x150]
AND EAX,0xf3ff
OR EAX,0x800
MOV word ptr [ESP + 0x160],AX
FLDCW word ptr [ESP + 0x160]
FRNDINT
FLDCW word ptr [ESP + 0x150]
FSTP qword ptr [ESP + 0x90]
FLD qword ptr [ESP + 0x90]
JMP 0x001ee2d3
FNSTCW word ptr [ESP + 0x150]
MOVZX EAX,word ptr [ESP + 0x150]
AND EAX,0xf3ff
OR EAX,0x800
MOV word ptr [ESP + 0x160],AX
FLDCW word ptr [ESP + 0x160]
FRNDINT
FLDCW word ptr [ESP + 0x150]
FSTP qword ptr [ESP + 0x90]
FLD qword ptr [ESP + 0x90]
JMP 0x001ee276
FSTP ST3
FXCH
FXCH ST2
FLD dword ptr [EDI + 0xfff00240]
FXCH ST3
FXCH ST2
FXCH
JMP 0x001ee219
MOV dword ptr [ESP + 0x34],ECX
MOV ECX,dword ptr [ESP + 0x34]
MOV EDX,0xff
LEA EAX,[ECX + 0x7]
CMP EAX,0xff
CMOVA EAX,EDX
MOV EDX,EAX
SUB EDX,ECX
CMP EDX,0x6
JA 0x001eec27
LEA ECX,[EAX + -0x7]
MOV dword ptr [ESP + 0x34],EAX
MOV dword ptr [ESP + 0x3c],ECX
JMP 0x001ee755
FNSTCW word ptr [ESP + 0x150]
MOVZX EAX,word ptr [ESP + 0x150]
AND EAX,0xf3ff
OR EAX,0x800
MOV word ptr [ESP + 0x160],AX
FLDCW word ptr [ESP + 0x160]
FRNDINT
FLDCW word ptr [ESP + 0x150]
FSTP qword ptr [ESP + 0x90]
FLD qword ptr [ESP + 0x90]
JMP 0x001ee4a8
MOV EAX,dword ptr [ESP + 0x30]
MOV EBX,dword ptr [EAX + 0x1c]
MOV EAX,dword ptr [ESP + 0x7c]
CMP EBX,EAX
MOV dword ptr [ESP + 0x78],EAX
JG 0x001ecef5
JMP 0x001edba7
MOV dword ptr [ESP + 0x10],EAX
SUB ESP,0x10
MOV EBX,EDI
FSTP dword ptr [ESP + 0x1c]
FSTP dword ptr [ESP]
CALL 0x00030c50
FSTP ST0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
FLD dword ptr [ESP + 0xc]
JMP 0x001ed302
MOV EAX,dword ptr [ESP + 0x4c]
MOV dword ptr [ESP + 0x40],EAX
MOV ECX,dword ptr [ESP + 0x40]
MOV EAX,0xff
LEA EBX,[ECX + 0x5]
CMP EBX,0xff
CMOVBE EAX,EBX
MOV EBX,EAX
MOV dword ptr [ESP + 0x4c],EAX
SUB EAX,ECX
CMP EAX,0x4
JA 0x001ee710
LEA EAX,[EBX + -0x5]
MOV dword ptr [ESP + 0x40],EAX
JMP 0x001ee710
MOV dword ptr [ESP + 0x18],0x0
XOR ESI,ESI
MOV dword ptr [ESP + 0x3c],0xff
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x4c],0x5
MOV dword ptr [ESP + 0x40],0x0
JMP 0x001ee710
FLD1
FXCH ST4
FUCOMI ST0,ST4
FSTP ST4
JBE 0x001ee1d7
FSTP ST3
FXCH
FXCH ST2
FLD dword ptr [EDI + 0xfff00244]
FXCH
FXCH ST2
FXCH
JMP 0x001ee1e7
FLD1
FXCH ST3
FUCOMI ST0,ST3
FSTP ST3
JBE 0x001eebdf
FSTP ST2
FXCH
FLD dword ptr [EDI + 0xfff00240]
FLD ST0
JMP 0x001ee10e
CALL 0x0029eab0
FSTP ST2
FSTP dword ptr [ESP + 0xb0]
FSTP dword ptr [ESP + 0xb4]
FLD dword ptr [ESP + 0x10]
JMP 0x001ee0ad
FXCH ST2
FMUL dword ptr [EDI + 0xffeeced8]
FLD dword ptr [EDI + 0xffec6124]
FADDP
FLD ST0
FXCH ST2
FXCH ST3
FXCH ST2
JMP 0x001ee10e
FST dword ptr [ESP + 0x1c]
FLD ST0
FST dword ptr [ESP + 0xc]
FST dword ptr [ESP + 0x2c]
FST dword ptr [ESP + 0x10]
FSTP dword ptr [ESP + 0x20]
JMP 0x001ed457
FLD dword ptr [ESP + 0x38]
FSTP dword ptr [ESP + 0xa8]
JMP 0x001ee0f8
MOV ECX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x34],EAX
MOV dword ptr [ESP + 0x3c],ECX
JMP 0x001ee755
(translation_unit "void FUN_001ecea0(int param_1,undefined4 param_2)\n\n{\n  uint uVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  double dVar7;\n  float fVar8;\n  char cVar9;\n  undefined2 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  uint uVar20;\n  float *pfVar21;\n  float *pfVar22;\n  byte extraout_CL;\n  byte bVar23;\n  int iVar24;\n  byte bVar25;\n  int iVar26;\n  float fVar27;\n  byte *pbVar28;\n  uint uVar29;\n  byte bVar30;\n  byte *pbVar31;\n  byte bVar32;\n  int iVar33;\n  byte bVar34;\n  uint uVar35;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined2 in_FPUControlWord;\n  undefined8 uVar36;\n  float local_4e0;\n  float local_4dc;\n  float local_4d4;\n  float local_4d0;\n  float local_4cc;\n  float local_4c0;\n  float local_4b8;\n  float local_4b4;\n  uint local_4b0;\n  float local_4ac;\n  int local_4a8;\n  uint local_4a0;\n  uint local_474;\n  float local_44c;\n  float local_448;\n  float local_444;\n  float local_440;\n  float local_43c;\n  float local_438;\n  float local_434;\n  float local_430;\n  float local_42c;\n  float local_428;\n  float local_424;\n  float 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  undefined4 local_3d8;\n  undefined4 local_3d4;\n  undefined4 local_3d0;\n  undefined4 local_3cc;\n  undefined4 local_3c8;\n  undefined4 local_3c4;\n  undefined4 local_3c0;\n  undefined4 local_3bc;\n  undefined4 local_3b8;\n  undefined4 local_3b4;\n  undefined4 local_3b0;\n  undefined4 local_3ac;\n  undefined4 local_3a8;\n  undefined4 local_3a4;\n  undefined4 local_3a0;\n  float local_39c;\n  float local_398;\n  float local_394;\n  undefined4 local_390;\n  float local_38c;\n  undefined4 *local_388;\n  float *local_384;\n  float *local_380;\n  undefined4 *local_37c;\n  undefined4 *local_378;\n  undefined4 *local_374;\n  undefined4 *local_370;\n  float *local_36c;\n  undefined4 *local_368;\n  undefined4 *local_364;\n  undefined4 *local_360;\n  float *local_35c;\n  undefined4 local_358;\n  int local_354;\n  int local_350;\n  int local_34c;\n  int local_348;\n  int local_344;\n  uint local_340 [16];\n  float local_300 [16];\n  float local_2c0 [64];\n  float local_1c0;\n  float local_1bc;\n  float local_1b8;\n  float local_1b4;\n  float local_1b0;\n  float local_1ac;\n  float local_1a8;\n  float local_1a4;\n  float local_1a0;\n  float local_19c;\n  float local_198;\n  float local_194;\n  byte local_c0 [16];\n  byte local_b0 [16];\n  byte local_a0 [128];\n  int local_20;\n  \n  uVar36 = FUN_0004c803();\n  iVar26 = (int)((ulonglong)uVar36 >> 0x20);\n  iVar11 = (int)uVar36;\n  local_474 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar15 = *(uint *)(iVar11 + 0x1c);\n  if (0 < (int)uVar15) {\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }\n  return;\n}\n\n" (function_definition "void FUN_001ecea0(int param_1,undefined4 param_2)\n\n{\n  uint uVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  double dVar7;\n  float fVar8;\n  char cVar9;\n  undefined2 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  uint uVar20;\n  float *pfVar21;\n  float *pfVar22;\n  byte extraout_CL;\n  byte bVar23;\n  int iVar24;\n  byte bVar25;\n  int iVar26;\n  float fVar27;\n  byte *pbVar28;\n  uint uVar29;\n  byte bVar30;\n  byte *pbVar31;\n  byte bVar32;\n  int iVar33;\n  byte bVar34;\n  uint uVar35;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined2 in_FPUControlWord;\n  undefined8 uVar36;\n  float local_4e0;\n  float local_4dc;\n  float local_4d4;\n  float local_4d0;\n  float local_4cc;\n  float local_4c0;\n  float local_4b8;\n  float local_4b4;\n  uint local_4b0;\n  float local_4ac;\n  int local_4a8;\n  uint local_4a0;\n  uint local_474;\n  float local_44c;\n  float local_448;\n  float local_444;\n  float local_440;\n  float local_43c;\n  float local_438;\n  float local_434;\n  float local_430;\n  float local_42c;\n  float local_428;\n  float local_424;\n  float 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  undefined4 local_3d8;\n  undefined4 local_3d4;\n  undefined4 local_3d0;\n  undefined4 local_3cc;\n  undefined4 local_3c8;\n  undefined4 local_3c4;\n  undefined4 local_3c0;\n  undefined4 local_3bc;\n  undefined4 local_3b8;\n  undefined4 local_3b4;\n  undefined4 local_3b0;\n  undefined4 local_3ac;\n  undefined4 local_3a8;\n  undefined4 local_3a4;\n  undefined4 local_3a0;\n  float local_39c;\n  float local_398;\n  float local_394;\n  undefined4 local_390;\n  float local_38c;\n  undefined4 *local_388;\n  float *local_384;\n  float *local_380;\n  undefined4 *local_37c;\n  undefined4 *local_378;\n  undefined4 *local_374;\n  undefined4 *local_370;\n  float *local_36c;\n  undefined4 *local_368;\n  undefined4 *local_364;\n  undefined4 *local_360;\n  float *local_35c;\n  undefined4 local_358;\n  int local_354;\n  int local_350;\n  int local_34c;\n  int local_348;\n  int local_344;\n  uint local_340 [16];\n  float local_300 [16];\n  float local_2c0 [64];\n  float local_1c0;\n  float local_1bc;\n  float local_1b8;\n  float local_1b4;\n  float local_1b0;\n  float local_1ac;\n  float local_1a8;\n  float local_1a4;\n  float local_1a0;\n  float local_19c;\n  float local_198;\n  float local_194;\n  byte local_c0 [16];\n  byte local_b0 [16];\n  byte local_a0 [128];\n  int local_20;\n  \n  uVar36 = FUN_0004c803();\n  iVar26 = (int)((ulonglong)uVar36 >> 0x20);\n  iVar11 = (int)uVar36;\n  local_474 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar15 = *(uint *)(iVar11 + 0x1c);\n  if (0 < (int)uVar15) {\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001ecea0(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  double dVar7;\n  float fVar8;\n  char cVar9;\n  undefined2 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  uint uVar20;\n  float *pfVar21;\n  float *pfVar22;\n  byte extraout_CL;\n  byte bVar23;\n  int iVar24;\n  byte bVar25;\n  int iVar26;\n  float fVar27;\n  byte *pbVar28;\n  uint uVar29;\n  byte bVar30;\n  byte *pbVar31;\n  byte bVar32;\n  int iVar33;\n  byte bVar34;\n  uint uVar35;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined2 in_FPUControlWord;\n  undefined8 uVar36;\n  float local_4e0;\n  float local_4dc;\n  float local_4d4;\n  float local_4d0;\n  float local_4cc;\n  float local_4c0;\n  float local_4b8;\n  float local_4b4;\n  uint local_4b0;\n  float local_4ac;\n  int local_4a8;\n  uint local_4a0;\n  uint local_474;\n  float local_44c;\n  float local_448;\n  float local_444;\n  float local_440;\n  float local_43c;\n  float local_438;\n  float local_434;\n  float local_430;\n  float local_42c;\n  float local_428;\n  float local_424;\n  float 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  undefined4 local_3d8;\n  undefined4 local_3d4;\n  undefined4 local_3d0;\n  undefined4 local_3cc;\n  undefined4 local_3c8;\n  undefined4 local_3c4;\n  undefined4 local_3c0;\n  undefined4 local_3bc;\n  undefined4 local_3b8;\n  undefined4 local_3b4;\n  undefined4 local_3b0;\n  undefined4 local_3ac;\n  undefined4 local_3a8;\n  undefined4 local_3a4;\n  undefined4 local_3a0;\n  float local_39c;\n  float local_398;\n  float local_394;\n  undefined4 local_390;\n  float local_38c;\n  undefined4 *local_388;\n  float *local_384;\n  float *local_380;\n  undefined4 *local_37c;\n  undefined4 *local_378;\n  undefined4 *local_374;\n  undefined4 *local_370;\n  float *local_36c;\n  undefined4 *local_368;\n  undefined4 *local_364;\n  undefined4 *local_360;\n  float *local_35c;\n  undefined4 local_358;\n  int local_354;\n  int local_350;\n  int local_34c;\n  int local_348;\n  int local_344;\n  uint local_340 [16];\n  float local_300 [16];\n  float local_2c0 [64];\n  float local_1c0;\n  float local_1bc;\n  float local_1b8;\n  float local_1b4;\n  float local_1b0;\n  float local_1ac;\n  float local_1a8;\n  float local_1a4;\n  float local_1a0;\n  float local_19c;\n  float local_198;\n  float local_194;\n  byte local_c0 [16];\n  byte local_b0 [16];\n  byte local_a0 [128];\n  int local_20;\n  \n  uVar36 = FUN_0004c803();\n  iVar26 = (int)((ulonglong)uVar36 >> 0x20);\n  iVar11 = (int)uVar36;\n  local_474 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar15 = *(uint *)(iVar11 + 0x1c);\n  if (0 < (int)uVar15) {\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "float fVar2;" primitive_type identifier ;) (declaration "float fVar3;" primitive_type identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "float fVar5;" primitive_type identifier ;) (declaration "float fVar6;" primitive_type identifier ;) (declaration "double dVar7;" primitive_type identifier ;) (declaration "float fVar8;" primitive_type identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "undefined2 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "float *pfVar21;" primitive_type (pointer_declarator "*pfVar21" * identifier) ;) (declaration "float *pfVar22;" primitive_type (pointer_declarator "*pfVar22" * identifier) ;) (declaration "byte extraout_CL;" type_identifier identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "float fVar27;" primitive_type identifier ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "byte bVar30;" type_identifier identifier ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "byte bVar32;" type_identifier identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "byte bVar34;" type_identifier identifier ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined2 in_FPUControlWord;" type_identifier identifier ;) (declaration "undefined8 uVar36;" type_identifier identifier ;) (declaration "float local_4e0;" primitive_type identifier ;) (declaration "float local_4dc;" primitive_type identifier ;) (declaration "float local_4d4;" primitive_type identifier ;) (declaration "float local_4d0;" primitive_type identifier ;) (declaration "float local_4cc;" primitive_type identifier ;) (declaration "float local_4c0;" primitive_type identifier ;) (declaration "float local_4b8;" primitive_type identifier ;) (declaration "float local_4b4;" primitive_type identifier ;) (declaration "uint local_4b0;" type_identifier identifier ;) (declaration "float local_4ac;" primitive_type identifier ;) (declaration "int local_4a8;" primitive_type identifier ;) (declaration "uint local_4a0;" type_identifier identifier ;) (declaration "uint local_474;" type_identifier identifier ;) (declaration "float local_44c;" primitive_type identifier ;) (declaration "float local_448;" primitive_type identifier ;) (declaration "float local_444;" primitive_type identifier ;) (declaration "float local_440;" primitive_type identifier ;) (declaration "float local_43c;" primitive_type identifier ;) (declaration "float local_438;" primitive_type identifier ;) (declaration "float local_434;" primitive_type identifier ;) (declaration "float local_430;" primitive_type identifier ;) (declaration "float local_42c;" primitive_type identifier ;) (declaration "float local_428;" primitive_type identifier ;) (declaration "float local_424;" primitive_type identifier ;) (declaration "float local_420;" primitive_type 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 "undefined4 local_3d8;" type_identifier identifier ;) (declaration "undefined4 local_3d4;" type_identifier identifier ;) (declaration "undefined4 local_3d0;" type_identifier identifier ;) (declaration "undefined4 local_3cc;" type_identifier identifier ;) (declaration "undefined4 local_3c8;" type_identifier identifier ;) (declaration "undefined4 local_3c4;" type_identifier identifier ;) (declaration "undefined4 local_3c0;" type_identifier identifier ;) (declaration "undefined4 local_3bc;" type_identifier identifier ;) (declaration "undefined4 local_3b8;" type_identifier identifier ;) (declaration "undefined4 local_3b4;" type_identifier identifier ;) (declaration "undefined4 local_3b0;" type_identifier identifier ;) (declaration "undefined4 local_3ac;" type_identifier identifier ;) (declaration "undefined4 local_3a8;" type_identifier identifier ;) (declaration "undefined4 local_3a4;" type_identifier identifier ;) (declaration "undefined4 local_3a0;" type_identifier identifier ;) (declaration "float local_39c;" primitive_type identifier ;) (declaration "float local_398;" primitive_type identifier ;) (declaration "float local_394;" primitive_type identifier ;) (declaration "undefined4 local_390;" type_identifier identifier ;) (declaration "float local_38c;" primitive_type identifier ;) (declaration "undefined4 *local_388;" type_identifier (pointer_declarator "*local_388" * identifier) ;) (declaration "float *local_384;" primitive_type (pointer_declarator "*local_384" * identifier) ;) (declaration "float *local_380;" primitive_type (pointer_declarator "*local_380" * identifier) ;) (declaration "undefined4 *local_37c;" type_identifier (pointer_declarator "*local_37c" * identifier) ;) (declaration "undefined4 *local_378;" type_identifier (pointer_declarator "*local_378" * identifier) ;) (declaration "undefined4 *local_374;" type_identifier (pointer_declarator "*local_374" * identifier) ;) (declaration "undefined4 *local_370;" type_identifier (pointer_declarator "*local_370" * identifier) ;) (declaration "float *local_36c;" primitive_type (pointer_declarator "*local_36c" * identifier) ;) (declaration "undefined4 *local_368;" type_identifier (pointer_declarator "*local_368" * identifier) ;) (declaration "undefined4 *local_364;" type_identifier (pointer_declarator "*local_364" * identifier) ;) (declaration "undefined4 *local_360;" type_identifier (pointer_declarator "*local_360" * identifier) ;) (declaration "float *local_35c;" primitive_type (pointer_declarator "*local_35c" * identifier) ;) (declaration "undefined4 local_358;" type_identifier identifier ;) (declaration "int local_354;" primitive_type identifier ;) (declaration "int local_350;" primitive_type identifier ;) (declaration "int local_34c;" primitive_type identifier ;) (declaration "int local_348;" primitive_type identifier ;) (declaration "int local_344;" primitive_type identifier ;) (declaration "uint local_340 [16];" type_identifier (array_declarator "local_340 [16]" identifier [ number_literal ]) ;) (declaration "float local_300 [16];" primitive_type (array_declarator "local_300 [16]" identifier [ number_literal ]) ;) (declaration "float local_2c0 [64];" primitive_type (array_declarator "local_2c0 [64]" identifier [ number_literal ]) ;) (declaration "float local_1c0;" primitive_type identifier ;) (declaration "float local_1bc;" primitive_type identifier ;) (declaration "float local_1b8;" primitive_type identifier ;) (declaration "float local_1b4;" primitive_type identifier ;) (declaration "float local_1b0;" primitive_type identifier ;) (declaration "float local_1ac;" primitive_type identifier ;) (declaration "float local_1a8;" primitive_type identifier ;) (declaration "float local_1a4;" primitive_type identifier ;) (declaration "float local_1a0;" primitive_type identifier ;) (declaration "float local_19c;" primitive_type identifier ;) (declaration "float local_198;" primitive_type identifier ;) (declaration "float local_194;" primitive_type identifier ;) (declaration "byte local_c0 [16];" type_identifier (array_declarator "local_c0 [16]" identifier [ number_literal ]) ;) (declaration "byte local_b0 [16];" type_identifier (array_declarator "local_b0 [16]" identifier [ number_literal ]) ;) (declaration "byte local_a0 [128];" type_identifier (array_declarator "local_a0 [128]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar36 = FUN_0004c803();" (assignment_expression "uVar36 = FUN_0004c803()" identifier = (call_expression "FUN_0004c803()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar26 = (int)((ulonglong)uVar36 >> 0x20);" (assignment_expression "iVar26 = (int)((ulonglong)uVar36 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar36 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar36 >> 0x20)" ( (binary_expression "(ulonglong)uVar36 >> 0x20" (cast_expression "(ulonglong)uVar36" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar11 = (int)uVar36;" (assignment_expression "iVar11 = (int)uVar36" identifier = (cast_expression "(int)uVar36" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_474 = 0;" (assignment_expression "local_474 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(uint *)(iVar11 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(iVar11 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x1c)" * (cast_expression "(uint *)(iVar11 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (0 < (int)uVar15) {\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }" if (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }" { (do_statement "do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);" do (compound_statement "{\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    }" { (expression_statement "uVar19 = *(uint *)(iVar11 + 0x18);" (assignment_expression "uVar19 = *(uint *)(iVar11 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x18)" * (cast_expression "(uint *)(iVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar35 = local_474 + 4;" (assignment_expression "uVar35 = local_474 + 4" identifier = (binary_expression "local_474 + 4" identifier + number_literal)) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }" if (parenthesized_expression "(0 < (int)uVar19)" ( (binary_expression "0 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }" { (do_statement "do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);" do (compound_statement "{\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        }" { (expression_statement "uVar1 = uVar29 + 4;" (assignment_expression "uVar1 = uVar29 + 4" identifier = (binary_expression "uVar29 + 4" identifier + number_literal)) ;) (expression_statement "iVar24 = uVar19 - uVar29;" (assignment_expression "iVar24 = uVar19 - uVar29" identifier = (binary_expression "uVar19 - uVar29" identifier - identifier)) ;) (if_statement "if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }" if (parenthesized_expression "(uVar1 < uVar19)" ( (binary_expression "uVar1 < uVar19" identifier < identifier) )) (compound_statement "{\n            iVar24 = 4;\n          }" { (expression_statement "iVar24 = 4;" (assignment_expression "iVar24 = 4" identifier = number_literal) ;) })) (expression_statement "iVar12 = uVar15 - local_474;" (assignment_expression "iVar12 = uVar15 - local_474" identifier = (binary_expression "uVar15 - local_474" identifier - identifier)) ;) (if_statement "if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }" if (parenthesized_expression "(uVar35 < uVar15)" ( (binary_expression "uVar35 < uVar15" identifier < identifier) )) (compound_statement "{\n            iVar12 = 4;\n          }" { (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) })) (expression_statement "local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);" (assignment_expression "local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2)" identifier = (call_expression "GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2)" identifier (argument_list "(iVar11,uVar29,local_474,iVar24,iVar12,param_2)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }" if (parenthesized_expression "(local_4a8 == 0)" ( (binary_expression "local_4a8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }" { (expression_statement "uVar15 = *(uint *)(iVar11 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(iVar11 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x1c)" * (cast_expression "(uint *)(iVar11 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);" do (compound_statement "{\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          }" { (expression_statement "local_300[iVar13] = -NAN;" (assignment_expression "local_300[iVar13] = -NAN" (subscript_expression "local_300[iVar13]" identifier [ identifier ]) = (unary_expression "-NAN" - identifier)) ;) (expression_statement "local_340[iVar13] = 0xffffffff;" (assignment_expression "local_340[iVar13] = 0xffffffff" (subscript_expression "local_340[iVar13]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != 0x10)" ( (binary_expression "iVar13 != 0x10" identifier != number_literal) )) ;) (if_statement "if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }" if (parenthesized_expression "(iVar12 < 1)" ( (binary_expression "iVar12 < 1" identifier < number_literal) )) (compound_statement "{\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }" { (if_statement "if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }" if (parenthesized_expression "(iVar26 == 0x35545844)" ( (binary_expression "iVar26 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }" { (expression_statement "local_4d4 = 0.0;" (assignment_expression "local_4d4 = 0.0" identifier = number_literal) ;) (expression_statement "local_4b0 = 0xff;" (assignment_expression "local_4b0 = 0xff" identifier = number_literal) ;) (expression_statement "local_4b8 = 0.0;" (assignment_expression "local_4b8 = 0.0" identifier = number_literal) ;) (expression_statement "local_4a0 = 5;" (assignment_expression "local_4a0 = 5" identifier = number_literal) ;) (expression_statement "local_4ac = 0.0;" (assignment_expression "local_4ac = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_001ee710;" goto statement_identifier ;) })) (expression_statement "local_4d4 = 0.0;" (assignment_expression "local_4d4 = 0.0" identifier = number_literal) ;) (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" identifier = number_literal) ;) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" identifier = number_literal) ;) (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) (expression_statement "fVar3 = local_4c0;" (assignment_expression "fVar3 = local_4c0" identifier = identifier) ;) (labeled_statement "LAB_001ed457:\n            local_4c0 = fVar3;" statement_identifier : (expression_statement "local_4c0 = fVar3;" (assignment_expression "local_4c0 = fVar3" identifier = identifier) ;)) (expression_statement "local_438 = 0.0;" (assignment_expression "local_438 = 0.0" identifier = number_literal) ;) (expression_statement "local_43c = 0.0;" (assignment_expression "local_43c = 0.0" identifier = number_literal) ;) (expression_statement "local_440 = 0.0;" (assignment_expression "local_440 = 0.0" identifier = number_literal) ;) (expression_statement "local_444 = 0.0;" (assignment_expression "local_444 = 0.0" identifier = number_literal) ;) (expression_statement "local_448 = 0.0;" (assignment_expression "local_448 = 0.0" identifier = number_literal) ;) (expression_statement "local_44c = 0.0;" (assignment_expression "local_44c = 0.0" identifier = number_literal) ;) (expression_statement "fVar6 = 1.0;" (assignment_expression "fVar6 = 1.0" identifier = number_literal) ;) (expression_statement "iVar24 = 8;" (assignment_expression "iVar24 = 8" identifier = number_literal) ;) (expression_statement "fVar3 = 1.0;" (assignment_expression "fVar3 = 1.0" identifier = number_literal) ;) (expression_statement "fVar4 = 1.0;" (assignment_expression "fVar4 = 1.0" identifier = number_literal) ;) (do_statement "do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);" do (compound_statement "{\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            }" { (expression_statement "fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;" (assignment_expression "fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4" identifier = (binary_expression "local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4" (binary_expression "local_4dc * fVar6 + fVar2 * fVar3" (binary_expression "local_4dc * fVar6" identifier * identifier) + (binary_expression "fVar2 * fVar3" identifier * identifier)) + (binary_expression "local_4cc * fVar4" identifier * identifier))) ;) (expression_statement "fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;" (assignment_expression "fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4" identifier = (binary_expression "local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4" (binary_expression "local_4e0 * fVar6 + local_4c0 * fVar3" (binary_expression "local_4e0 * fVar6" identifier * identifier) + (binary_expression "local_4c0 * fVar3" identifier * identifier)) + (binary_expression "fVar2 * fVar4" identifier * identifier))) ;) (expression_statement "fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;" (assignment_expression "fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc" identifier = (binary_expression "fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc" (binary_expression "fVar6 * local_4d0 + fVar3 * local_4e0" (binary_expression "fVar6 * local_4d0" identifier * identifier) + (binary_expression "fVar3 * local_4e0" identifier * identifier)) + (binary_expression "fVar4 * local_4dc" identifier * identifier))) ;) (expression_statement "fVar3 = fVar5;" (assignment_expression "fVar3 = fVar5" identifier = identifier) ;) (if_statement "if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }" if (parenthesized_expression "(fVar5 <= fVar27 || fVar27 != fVar5)" ( (binary_expression "fVar5 <= fVar27 || fVar27 != fVar5" (binary_expression "fVar5 <= fVar27" identifier <= identifier) || (binary_expression "fVar27 != fVar5" identifier != identifier)) )) (compound_statement "{\n                fVar3 = fVar27;\n              }" { (expression_statement "fVar3 = fVar27;" (assignment_expression "fVar3 = fVar27" identifier = identifier) ;) })) (expression_statement "fVar4 = fVar8;" (assignment_expression "fVar4 = fVar8" identifier = identifier) ;) (if_statement "if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }" if (parenthesized_expression "(fVar8 <= fVar3)" ( (binary_expression "fVar8 <= fVar3" identifier <= identifier) )) (compound_statement "{\n                fVar4 = fVar3;\n              }" { (expression_statement "fVar4 = fVar3;" (assignment_expression "fVar4 = fVar3" identifier = identifier) ;) })) (if_statement "if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }" if (parenthesized_expression "(fVar4 < 0.0)" ( (binary_expression "fVar4 < 0.0" identifier < number_literal) )) (compound_statement "{\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }" { (expression_statement "fVar3 = -fVar4;" (assignment_expression "fVar3 = -fVar4" identifier = (unary_expression "-fVar4" - identifier)) ;) (expression_statement "fVar6 = -1.0;" (assignment_expression "fVar6 = -1.0" identifier = number_literal) ;) }) (else_clause "else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }" else (compound_statement "{\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }" { (expression_statement "fVar6 = 1.0;" (assignment_expression "fVar6 = 1.0" identifier = number_literal) ;) (expression_statement "fVar3 = fVar4;" (assignment_expression "fVar3 = fVar4" identifier = identifier) ;) }))) (if_statement "if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }" if (parenthesized_expression "((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3)" ( (binary_expression "(float)*(double *)(unaff_EDI + 0xb2291) <= fVar3" (cast_expression "(float)*(double *)(unaff_EDI + 0xb2291)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(unaff_EDI + 0xb2291)" * (cast_expression "(double *)(unaff_EDI + 0xb2291)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb2291)" ( (binary_expression "unaff_EDI + 0xb2291" identifier + number_literal) ))))) <= identifier) )) (compound_statement "{\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }" { (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4" identifier = (binary_expression "*(float *)(unaff_EDI + 0xb2871) / fVar4" (pointer_expression "*(float *)(unaff_EDI + 0xb2871)" * (cast_expression "(float *)(unaff_EDI + 0xb2871)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb2871)" ( (binary_expression "unaff_EDI + 0xb2871" identifier + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }" else (compound_statement "{\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }" { (expression_statement "fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);" (assignment_expression "fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291)" identifier = (binary_expression "fVar6 / (float)*(double *)(unaff_EDI + 0xb2291)" identifier / (cast_expression "(float)*(double *)(unaff_EDI + 0xb2291)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(unaff_EDI + 0xb2291)" * (cast_expression "(double *)(unaff_EDI + 0xb2291)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb2291)" ( (binary_expression "unaff_EDI + 0xb2291" identifier + number_literal) ))))))) ;) }))) (expression_statement "iVar24 = iVar24 + -1;" (assignment_expression "iVar24 = iVar24 + -1" identifier = (binary_expression "iVar24 + -1" identifier + number_literal)) ;) (expression_statement "fVar4 = fVar8 * fVar6;" (assignment_expression "fVar4 = fVar8 * fVar6" identifier = (binary_expression "fVar8 * fVar6" identifier * identifier)) ;) (expression_statement "fVar3 = fVar27 * fVar6;" (assignment_expression "fVar3 = fVar27 * fVar6" identifier = (binary_expression "fVar27 * fVar6" identifier * identifier)) ;) (expression_statement "fVar6 = fVar6 * fVar5;" (assignment_expression "fVar6 = fVar6 * fVar5" identifier = (binary_expression "fVar6 * fVar5" identifier * identifier)) ;) }) while (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) ;) (expression_statement "bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;" (assignment_expression "bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0" identifier = (binary_expression "(extraout_CL ^ 1) & 1 | local_4d4 == 0.0" (binary_expression "(extraout_CL ^ 1) & 1" (parenthesized_expression "(extraout_CL ^ 1)" ( (binary_expression "extraout_CL ^ 1" identifier ^ number_literal) )) & number_literal) | (binary_expression "local_4d4 == 0.0" identifier == number_literal))) ;) (if_statement "if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }" if (parenthesized_expression "(bVar25 == 0)" ( (binary_expression "bVar25 == 0" identifier == number_literal) )) (compound_statement "{\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }" { (expression_statement "local_3d0 = 0x3de38e39;" (assignment_expression "local_3d0 = 0x3de38e39" identifier = number_literal) ;) (expression_statement "local_41c = 0x3f800000;" (assignment_expression "local_41c = 0x3f800000" identifier = number_literal) ;) (expression_statement "local_418 = 0x3f800000;" (assignment_expression "local_418 = 0x3f800000" identifier = number_literal) ;) (expression_statement "local_414 = 0x3f800000;" (assignment_expression "local_414 = 0x3f800000" identifier = number_literal) ;) (expression_statement "local_410 = 0x3f800000;" (assignment_expression "local_410 = 0x3f800000" identifier = number_literal) ;) (expression_statement "local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);" (assignment_expression "local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xb227d)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xb227d)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (expression_statement "local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);" (assignment_expression "local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xbdd29)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xbdd29)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbdd29)" ( (binary_expression "unaff_EDI + 0xbdd29" identifier + number_literal) ))))) ;) (expression_statement "local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);" (assignment_expression "local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xec3b9)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xec3b9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b9)" ( (binary_expression "unaff_EDI + 0xec3b9" identifier + number_literal) ))))) ;) (expression_statement "local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);" (assignment_expression "local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xec3b5)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xec3b5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b5)" ( (binary_expression "unaff_EDI + 0xec3b5" identifier + number_literal) ))))) ;) (expression_statement "local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);" (assignment_expression "local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xec3bd)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xec3bd)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3bd)" ( (binary_expression "unaff_EDI + 0xec3bd" identifier + number_literal) ))))) ;) (expression_statement "local_3a0 = 0x3ee38e39;" (assignment_expression "local_3a0 = 0x3ee38e39" identifier = number_literal) ;) (expression_statement "local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);" (assignment_expression "local_40c = *(undefined4 *)(unaff_EDI + 0xd9031)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xd9031)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xd9031)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))) ;) (expression_statement "local_400 = 0;" (assignment_expression "local_400 = 0" identifier = number_literal) ;) (expression_statement "local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xec3ad)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) ))))) ;) (expression_statement "local_3f0 = 0;" (assignment_expression "local_3f0 = 0" identifier = number_literal) ;) (expression_statement "local_39c = 0.0;" (assignment_expression "local_39c = 0.0" identifier = number_literal) ;) (expression_statement "local_398 = 0.0;" (assignment_expression "local_398 = 0.0" identifier = number_literal) ;) (expression_statement "local_394 = 0.0;" (assignment_expression "local_394 = 0.0" identifier = number_literal) ;) (expression_statement "local_390 = 0;" (assignment_expression "local_390 = 0" identifier = number_literal) ;) (expression_statement "local_408 = 0x427c0000;" (assignment_expression "local_408 = 0x427c0000" identifier = number_literal) ;) (expression_statement "local_3f8 = 0x3c820821;" (assignment_expression "local_3f8 = 0x3c820821" identifier = number_literal) ;) (expression_statement "local_434 = fVar4;" (assignment_expression "local_434 = fVar4" identifier = identifier) ;) (expression_statement "local_430 = fVar3;" (assignment_expression "local_430 = fVar3" identifier = identifier) ;) (expression_statement "local_42c = fVar6;" (assignment_expression "local_42c = fVar6" identifier = identifier) ;) (expression_statement "local_404 = local_40c;" (assignment_expression "local_404 = local_40c" identifier = identifier) ;) (expression_statement "local_3f4 = local_3fc;" (assignment_expression "local_3f4 = local_3fc" identifier = identifier) ;) (expression_statement "local_3e8 = local_3ec;" (assignment_expression "local_3e8 = local_3ec" identifier = identifier) ;) (expression_statement "local_3e4 = local_3ec;" (assignment_expression "local_3e4 = local_3ec" identifier = identifier) ;) (expression_statement "local_3e0 = local_3ec;" (assignment_expression "local_3e0 = local_3ec" identifier = identifier) ;) (expression_statement "local_3d8 = local_3dc;" (assignment_expression "local_3d8 = local_3dc" identifier = identifier) ;) (expression_statement "local_3d4 = local_3dc;" (assignment_expression "local_3d4 = local_3dc" identifier = identifier) ;) (expression_statement "local_3c8 = local_3cc;" (assignment_expression "local_3c8 = local_3cc" identifier = identifier) ;) (expression_statement "local_3c4 = local_3cc;" (assignment_expression "local_3c4 = local_3cc" identifier = identifier) ;) (expression_statement "local_3c0 = local_3cc;" (assignment_expression "local_3c0 = local_3cc" identifier = identifier) ;) (expression_statement "local_3b8 = local_3bc;" (assignment_expression "local_3b8 = local_3bc" identifier = identifier) ;) (expression_statement "local_3b4 = local_3bc;" (assignment_expression "local_3b4 = local_3bc" identifier = identifier) ;) (expression_statement "local_3b0 = local_3bc;" (assignment_expression "local_3b0 = local_3bc" identifier = identifier) ;) (expression_statement "local_3a8 = local_3ac;" (assignment_expression "local_3a8 = local_3ac" identifier = identifier) ;) (expression_statement "local_3a4 = local_3ac;" (assignment_expression "local_3a4 = local_3ac" identifier = identifier) ;) (expression_statement "FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);" (call_expression "FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0)" identifier (argument_list "(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0)" ( identifier , identifier , identifier , (pointer_expression "&local_1c0" & identifier) , (pointer_expression "&local_39c" & identifier) , identifier , number_literal ))) ;) (expression_statement "local_4c0 = *(float *)(unaff_EDI + 0xec3a1);" (assignment_expression "local_4c0 = *(float *)(unaff_EDI + 0xec3a1)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec3a1)" * (cast_expression "(float *)(unaff_EDI + 0xec3a1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3a1)" ( (binary_expression "unaff_EDI + 0xec3a1" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" identifier = number_literal) ;) (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" identifier = number_literal) ;) (do_statement "do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);" do (compound_statement "{\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              }" { (expression_statement "uVar16 = GetMagickResourceLimit(7);" (assignment_expression "uVar16 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "local_350 = (int)local_4dc;" (assignment_expression "local_350 = (int)local_4dc" identifier = (cast_expression "(int)local_4dc" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_358 = local_4c0;" (assignment_expression "local_358 = local_4c0" identifier = identifier) ;) (expression_statement "local_34c = (int)local_4d0;" (assignment_expression "local_34c = (int)local_4d0" identifier = (cast_expression "(int)local_4d0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_348 = (int)local_4cc;" (assignment_expression "local_348 = (int)local_4cc" identifier = (cast_expression "(int)local_4cc" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_38c = local_4d4;" (assignment_expression "local_38c = local_4d4" identifier = identifier) ;) (expression_statement "local_388 = &local_41c;" (assignment_expression "local_388 = &local_41c" identifier = (pointer_expression "&local_41c" & identifier)) ;) (expression_statement "local_384 = &local_440;" (assignment_expression "local_384 = &local_440" identifier = (pointer_expression "&local_440" & identifier)) ;) (expression_statement "local_380 = &local_44c;" (assignment_expression "local_380 = &local_44c" identifier = (pointer_expression "&local_44c" & identifier)) ;) (expression_statement "local_37c = &local_40c;" (assignment_expression "local_37c = &local_40c" identifier = (pointer_expression "&local_40c" & identifier)) ;) (expression_statement "local_378 = &local_3fc;" (assignment_expression "local_378 = &local_3fc" identifier = (pointer_expression "&local_3fc" & identifier)) ;) (expression_statement "local_374 = &local_3ec;" (assignment_expression "local_374 = &local_3ec" identifier = (pointer_expression "&local_3ec" & identifier)) ;) (expression_statement "local_370 = &local_3dc;" (assignment_expression "local_370 = &local_3dc" identifier = (pointer_expression "&local_3dc" & identifier)) ;) (expression_statement "local_36c = &local_1c0;" (assignment_expression "local_36c = &local_1c0" identifier = (pointer_expression "&local_1c0" & identifier)) ;) (expression_statement "local_368 = &local_3cc;" (assignment_expression "local_368 = &local_3cc" identifier = (pointer_expression "&local_3cc" & identifier)) ;) (expression_statement "local_364 = &local_3bc;" (assignment_expression "local_364 = &local_3bc" identifier = (pointer_expression "&local_3bc" & identifier)) ;) (expression_statement "local_360 = &local_3ac;" (assignment_expression "local_360 = &local_3ac" identifier = (pointer_expression "&local_3ac" & identifier)) ;) (expression_statement "local_35c = &local_39c;" (assignment_expression "local_35c = &local_39c" identifier = (pointer_expression "&local_39c" & identifier)) ;) (expression_statement "local_354 = iVar24;" (assignment_expression "local_354 = iVar24" identifier = identifier) ;) (expression_statement "local_344 = iVar12;" (assignment_expression "local_344 = iVar12" identifier = identifier) ;) (expression_statement "GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);" (call_expression "GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0)" identifier (argument_list "(unaff_EDI + -0xd87,&local_38c,uVar16,0)" ( (binary_expression "unaff_EDI + -0xd87" identifier + number_literal) , (pointer_expression "&local_38c" & identifier) , identifier , number_literal ))) ;) (expression_statement "iVar14 = local_348;" (assignment_expression "iVar14 = local_348" identifier = identifier) ;) (expression_statement "iVar33 = local_34c;" (assignment_expression "iVar33 = local_34c" identifier = identifier) ;) (expression_statement "iVar13 = local_350;" (assignment_expression "iVar13 = local_350" identifier = identifier) ;) (expression_statement "iVar24 = local_354;" (assignment_expression "iVar24 = local_354" identifier = identifier) ;) (expression_statement "local_4c0 = (float)local_358;" (assignment_expression "local_4c0 = (float)local_358" identifier = (cast_expression "(float)local_358" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_4dc = (float)local_350;" (assignment_expression "local_4dc = (float)local_350" identifier = (cast_expression "(float)local_350" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_4d0 = (float)local_34c;" (assignment_expression "local_4d0 = (float)local_34c" identifier = (cast_expression "(float)local_34c" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_4cc = (float)local_348;" (assignment_expression "local_4cc = (float)local_348" identifier = (cast_expression "(float)local_348" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (iVar12 != local_354) break;" if (parenthesized_expression "(iVar12 != local_354)" ( (binary_expression "iVar12 != local_354" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (if_statement "if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }" if (parenthesized_expression "(iVar12 == 8)" ( (binary_expression "iVar12 == 8" identifier == number_literal) )) (compound_statement "{\n                  iVar24 = 7;\n                  break;\n                }" { (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "local_428 = local_44c - local_440;" (assignment_expression "local_428 = local_44c - local_440" identifier = (binary_expression "local_44c - local_440" identifier - identifier)) ;) (expression_statement "local_424 = local_448 - local_43c;" (assignment_expression "local_424 = local_448 - local_43c" identifier = (binary_expression "local_448 - local_43c" identifier - identifier)) ;) (expression_statement "local_420 = local_444 - local_438;" (assignment_expression "local_420 = local_444 - local_438" identifier = (binary_expression "local_444 - local_438" identifier - identifier)) ;) (expression_statement "iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);" (assignment_expression "iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12)" identifier = (call_expression "FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12)" identifier (argument_list "(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12)" ( identifier , identifier , identifier , (pointer_expression "&local_1c0" & identifier) , (pointer_expression "&local_39c" & identifier) , identifier , identifier )))) ;) }) while (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) ;) (expression_statement "pbVar28 = local_a0 + iVar24 * 0x10;" (assignment_expression "pbVar28 = local_a0 + iVar24 * 0x10" identifier = (binary_expression "local_a0 + iVar24 * 0x10" identifier + (binary_expression "iVar24 * 0x10" identifier * number_literal))) ;) (if_statement "if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }" { (expression_statement "pbVar18 = pbVar28;" (assignment_expression "pbVar18 = pbVar28" identifier = identifier) ;) (do_statement "do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);" do (compound_statement "{\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                }" { (expression_statement "bVar25 = *pbVar18;" (assignment_expression "bVar25 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_b0[bVar25] = 0;" (assignment_expression "local_b0[bVar25] = 0" (subscript_expression "local_b0[bVar25]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar28 + iVar13 != pbVar18)" ( (binary_expression "pbVar28 + iVar13 != pbVar18" (binary_expression "pbVar28 + iVar13" identifier + identifier) != identifier) )) ;) })) (if_statement "if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }" if (parenthesized_expression "(iVar13 < iVar33)" ( (binary_expression "iVar13 < iVar33" identifier < identifier) )) (compound_statement "{\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }" { (expression_statement "pbVar18 = pbVar28 + iVar13;" (assignment_expression "pbVar18 = pbVar28 + iVar13" identifier = (binary_expression "pbVar28 + iVar13" identifier + identifier)) ;) (do_statement "do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);" do (compound_statement "{\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                }" { (expression_statement "bVar25 = *pbVar18;" (assignment_expression "bVar25 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_b0[bVar25] = 2;" (assignment_expression "local_b0[bVar25] = 2" (subscript_expression "local_b0[bVar25]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar28 + iVar33 != pbVar18)" ( (binary_expression "pbVar28 + iVar33 != pbVar18" (binary_expression "pbVar28 + iVar33" identifier + identifier) != identifier) )) ;) })) (if_statement "if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }" if (parenthesized_expression "(iVar33 < iVar14)" ( (binary_expression "iVar33 < iVar14" identifier < identifier) )) (compound_statement "{\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }" { (expression_statement "pbVar18 = pbVar28 + iVar33;" (assignment_expression "pbVar18 = pbVar28 + iVar33" identifier = (binary_expression "pbVar28 + iVar33" identifier + identifier)) ;) (do_statement "do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);" do (compound_statement "{\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                }" { (expression_statement "bVar25 = *pbVar18;" (assignment_expression "bVar25 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_b0[bVar25] = 3;" (assignment_expression "local_b0[bVar25] = 3" (subscript_expression "local_b0[bVar25]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar28 + iVar14 != pbVar18)" ( (binary_expression "pbVar28 + iVar14 != pbVar18" (binary_expression "pbVar28 + iVar14" identifier + identifier) != identifier) )) ;) })) (if_statement "if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }" if (parenthesized_expression "(iVar14 < (int)local_4d4)" ( (binary_expression "iVar14 < (int)local_4d4" identifier < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }" { (expression_statement "pbVar18 = pbVar28 + iVar14;" (assignment_expression "pbVar18 = pbVar28 + iVar14" identifier = (binary_expression "pbVar28 + iVar14" identifier + identifier)) ;) (do_statement "do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);" do (compound_statement "{\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                }" { (expression_statement "bVar25 = *pbVar18;" (assignment_expression "bVar25 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_b0[bVar25] = 1;" (assignment_expression "local_b0[bVar25] = 1" (subscript_expression "local_b0[bVar25]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar28 + (int)local_4d4 != pbVar18)" ( (binary_expression "pbVar28 + (int)local_4d4 != pbVar18" (binary_expression "pbVar28 + (int)local_4d4" identifier + (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) ;) })) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);" do (compound_statement "{\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              }" { (while_statement "while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }" while (parenthesized_expression "(local_300[iVar24] != -NAN)" ( (binary_expression "local_300[iVar24] != -NAN" (subscript_expression "local_300[iVar24]" identifier [ identifier ]) != (unary_expression "-NAN" - identifier)) )) (compound_statement "{\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }" { (expression_statement "local_c0[iVar24] = local_b0[(int)local_300[iVar24]];" (assignment_expression "local_c0[iVar24] = local_b0[(int)local_300[iVar24]]" (subscript_expression "local_c0[iVar24]" identifier [ identifier ]) = (subscript_expression "local_b0[(int)local_300[iVar24]]" identifier [ (cast_expression "(int)local_300[iVar24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_300[iVar24]" identifier [ identifier ])) ])) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (if_statement "if (iVar24 == 0x10) goto LAB_001edb47;" if (parenthesized_expression "(iVar24 == 0x10)" ( (binary_expression "iVar24 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_001edb47;" goto statement_identifier ;)) })) (expression_statement "local_c0[iVar24] = 3;" (assignment_expression "local_c0[iVar24] = 3" (subscript_expression "local_c0[iVar24]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != 0x10)" ( (binary_expression "iVar24 != 0x10" identifier != number_literal) )) ;) }) (else_clause "else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }" else (compound_statement "{\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }" { (if_statement "if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }" if (parenthesized_expression "(local_4d4 == 0.0)" ( (binary_expression "local_4d4 == 0.0" identifier == number_literal) )) (compound_statement "{\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (expression_statement "local_438 = 0.0;" (assignment_expression "local_438 = 0.0" identifier = number_literal) ;) (expression_statement "local_43c = 0.0;" (assignment_expression "local_43c = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);" statement_identifier : (expression_statement "fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d)" identifier = (binary_expression "local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d)" (binary_expression "local_43c * *(float *)(unaff_EDI + 0xdf975)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" * (cast_expression "(float *)(unaff_EDI + 0xdf975)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf975)" ( (binary_expression "unaff_EDI + 0xdf975" identifier + number_literal) ))))) + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))))) ;)) (labeled_statement "LAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;" statement_identifier : (if_statement "if (local_438 < 0.0) goto LAB_001ee13a;" if (parenthesized_expression "(local_438 < 0.0)" ( (binary_expression "local_438 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_001ee13a;" goto statement_identifier ;))) (labeled_statement "LAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }" statement_identifier : (if_statement "if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }" if (parenthesized_expression "(1.0 < local_438)" ( (binary_expression "1.0 < local_438" number_literal < identifier) )) (compound_statement "{\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }" { (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xec399)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec399)" * (cast_expression "(float *)(unaff_EDI + 0xec399)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec399)" ( (binary_expression "unaff_EDI + 0xec399" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }" else (compound_statement "{\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }" { (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031)" (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))) + (binary_expression "local_438 * *(float *)(unaff_EDI + 0xd9031)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))))) ;) })))) }) (else_clause "else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }" else (compound_statement "{\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }" { (expression_statement "local_43c = local_2c0[1];" (assignment_expression "local_43c = local_2c0[1]" identifier = (subscript_expression "local_2c0[1]" identifier [ number_literal ])) ;) (expression_statement "local_438 = local_2c0[2];" (assignment_expression "local_438 = local_2c0[2]" identifier = (subscript_expression "local_2c0[2]" identifier [ number_literal ])) ;) (expression_statement "local_44c = local_2c0[0];" (assignment_expression "local_44c = local_2c0[0]" identifier = (subscript_expression "local_2c0[0]" identifier [ number_literal ])) ;) (expression_statement "local_448 = local_2c0[1];" (assignment_expression "local_448 = local_2c0[1]" identifier = (subscript_expression "local_2c0[1]" identifier [ number_literal ])) ;) (expression_statement "local_444 = local_2c0[2];" (assignment_expression "local_444 = local_2c0[2]" identifier = (subscript_expression "local_2c0[2]" identifier [ number_literal ])) ;) (expression_statement "local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];" (assignment_expression "local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0]" identifier = (binary_expression "fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0]" (binary_expression "fVar6 * local_2c0[2] + fVar3 * local_2c0[1]" (binary_expression "fVar6 * local_2c0[2]" identifier * (subscript_expression "local_2c0[2]" identifier [ number_literal ])) + (binary_expression "fVar3 * local_2c0[1]" identifier * (subscript_expression "local_2c0[1]" identifier [ number_literal ]))) + (binary_expression "fVar4 * local_2c0[0]" identifier * (subscript_expression "local_2c0[0]" identifier [ number_literal ])))) ;) (expression_statement "local_4dc = local_2c0[0];" (assignment_expression "local_4dc = local_2c0[0]" identifier = (subscript_expression "local_2c0[0]" identifier [ number_literal ])) ;) (if_statement "if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }" if (parenthesized_expression "(1 < (int)local_4d4)" ( (binary_expression "1 < (int)local_4d4" number_literal < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }" { (expression_statement "local_4b4 = local_2c0[2];" (assignment_expression "local_4b4 = local_2c0[2]" identifier = (subscript_expression "local_2c0[2]" identifier [ number_literal ])) ;) (expression_statement "bVar32 = 0;" (assignment_expression "bVar32 = 0" identifier = number_literal) ;) (expression_statement "bVar34 = 0;" (assignment_expression "bVar34 = 0" identifier = number_literal) ;) (expression_statement "local_4ac = local_2c0[1];" (assignment_expression "local_4ac = local_2c0[1]" identifier = (subscript_expression "local_2c0[1]" identifier [ number_literal ])) ;) (expression_statement "local_4b8 = local_2c0[0];" (assignment_expression "local_4b8 = local_2c0[0]" identifier = (subscript_expression "local_2c0[0]" identifier [ number_literal ])) ;) (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" identifier = identifier) ;) (expression_statement "local_4cc = local_2c0[1];" (assignment_expression "local_4cc = local_2c0[1]" identifier = (subscript_expression "local_2c0[1]" identifier [ number_literal ])) ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "local_4c0 = local_2c0[2];" (assignment_expression "local_4c0 = local_2c0[2]" identifier = (subscript_expression "local_2c0[2]" identifier [ number_literal ])) ;) (expression_statement "local_4e0 = local_4d0;" (assignment_expression "local_4e0 = local_4d0" identifier = identifier) ;) (expression_statement "bVar30 = 0;" (assignment_expression "bVar30 = 0" identifier = number_literal) ;) (do_statement "do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);" do (compound_statement "{\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  }" { (while_statement "while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }" { (expression_statement "fVar2 = pfVar21[4];" (assignment_expression "fVar2 = pfVar21[4]" identifier = (subscript_expression "pfVar21[4]" identifier [ number_literal ])) ;) (expression_statement "fVar27 = pfVar21[5];" (assignment_expression "fVar27 = pfVar21[5]" identifier = (subscript_expression "pfVar21[5]" identifier [ number_literal ])) ;) (expression_statement "fVar5 = pfVar21[6];" (assignment_expression "fVar5 = pfVar21[6]" identifier = (subscript_expression "pfVar21[6]" identifier [ number_literal ])) ;) (expression_statement "fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;" (assignment_expression "fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2" identifier = (binary_expression "fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2" (binary_expression "fVar6 * fVar5 + fVar3 * fVar27" (binary_expression "fVar6 * fVar5" identifier * identifier) + (binary_expression "fVar3 * fVar27" identifier * identifier)) + (binary_expression "fVar4 * fVar2" identifier * identifier))) ;) (if_statement "if (local_4e0 <= fVar8) break;" if (parenthesized_expression "(local_4e0 <= fVar8)" ( (binary_expression "local_4e0 <= fVar8" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "pfVar21 = pfVar21 + 4;" (assignment_expression "pfVar21 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) (expression_statement "bVar30 = bVar25;" (assignment_expression "bVar30 = bVar25" identifier = identifier) ;) (expression_statement "local_4e0 = fVar8;" (assignment_expression "local_4e0 = fVar8" identifier = identifier) ;) (expression_statement "local_4dc = fVar2;" (assignment_expression "local_4dc = fVar2" identifier = identifier) ;) (expression_statement "local_4cc = fVar27;" (assignment_expression "local_4cc = fVar27" identifier = identifier) ;) (expression_statement "local_4c0 = fVar5;" (assignment_expression "local_4c0 = fVar5" identifier = identifier) ;) (if_statement "if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;" if (parenthesized_expression "(pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4)" ( (binary_expression "pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4" identifier == (binary_expression "local_2c0 + (int)local_4d4 * 4 + -4" (binary_expression "local_2c0 + (int)local_4d4 * 4" identifier + (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) )) (goto_statement "goto LAB_001ee095;" goto statement_identifier ;)) })) (if_statement "if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }" if (parenthesized_expression "(local_4d0 < fVar8)" ( (binary_expression "local_4d0 < fVar8" identifier < identifier) )) (compound_statement "{\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }" { (expression_statement "local_4d0 = fVar8;" (assignment_expression "local_4d0 = fVar8" identifier = identifier) ;) (expression_statement "local_4b8 = fVar2;" (assignment_expression "local_4b8 = fVar2" identifier = identifier) ;) (expression_statement "local_4b4 = fVar5;" (assignment_expression "local_4b4 = fVar5" identifier = identifier) ;) (expression_statement "local_4ac = fVar27;" (assignment_expression "local_4ac = fVar27" identifier = identifier) ;) (expression_statement "bVar32 = bVar25;" (assignment_expression "bVar32 = bVar25" identifier = identifier) ;) (expression_statement "bVar34 = bVar25;" (assignment_expression "bVar34 = bVar25" identifier = identifier) ;) (expression_statement "bVar23 = bVar25;" (assignment_expression "bVar23 = bVar25" identifier = identifier) ;) })) (expression_statement "pfVar21 = pfVar21 + 4;" (assignment_expression "pfVar21 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4)" ( (binary_expression "pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4" identifier != (binary_expression "local_2c0 + (int)local_4d4 * 4 + -4" (binary_expression "local_2c0 + (int)local_4d4 * 4" identifier + (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) )) ;) (labeled_statement "LAB_001ee095:\n                  fVar2 = local_4cc;" statement_identifier : (expression_statement "fVar2 = local_4cc;" (assignment_expression "fVar2 = local_4cc" identifier = identifier) ;)) (expression_statement "fVar3 = local_4c0;" (assignment_expression "fVar3 = local_4c0" identifier = identifier) ;) (if_statement "if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }" if (parenthesized_expression "(bVar30 == 0)" ( (binary_expression "bVar30 == 0" identifier == number_literal) )) (compound_statement "{\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }" { (expression_statement "local_4dc = local_2c0[0];" (assignment_expression "local_4dc = local_2c0[0]" identifier = (subscript_expression "local_2c0[0]" identifier [ number_literal ])) ;) (expression_statement "fVar2 = local_43c;" (assignment_expression "fVar2 = local_43c" identifier = identifier) ;) (expression_statement "fVar3 = local_438;" (assignment_expression "fVar3 = local_438" identifier = identifier) ;) })) (expression_statement "local_438 = fVar3;" (assignment_expression "local_438 = fVar3" identifier = identifier) ;) (expression_statement "local_43c = fVar2;" (assignment_expression "local_43c = fVar2" identifier = identifier) ;) (if_statement "if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }" if (parenthesized_expression "(bVar34 != 0)" ( (binary_expression "bVar34 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_44c = local_4b8;\n                  }" { (expression_statement "local_44c = local_4b8;" (assignment_expression "local_44c = local_4b8" identifier = identifier) ;) })) (if_statement "if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }" if (parenthesized_expression "(bVar32 != 0)" ( (binary_expression "bVar32 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_448 = local_4ac;\n                  }" { (expression_statement "local_448 = local_4ac;" (assignment_expression "local_448 = local_4ac" identifier = identifier) ;) })) (if_statement "if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }" if (parenthesized_expression "(bVar23 != 0)" ( (binary_expression "bVar23 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_444 = local_4b4;\n                  }" { (expression_statement "local_444 = local_4b4;" (assignment_expression "local_444 = local_4b4" identifier = identifier) ;) })) })) (if_statement "if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }" if (parenthesized_expression "(0.0 <= local_4dc)" ( (binary_expression "0.0 <= local_4dc" number_literal <= identifier) )) (compound_statement "{\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }" { (if_statement "if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }" if (parenthesized_expression "(local_4dc <= 1.0)" ( (binary_expression "local_4dc <= 1.0" identifier <= number_literal) )) (compound_statement "{\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031)" (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))) + (binary_expression "local_4dc * *(float *)(unaff_EDI + 0xd9031)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))))) ;) }) (else_clause "else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }" else (compound_statement "{\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec399)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec399)" * (cast_expression "(float *)(unaff_EDI + 0xec399)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec399)" ( (binary_expression "unaff_EDI + 0xec399" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }" else (compound_statement "{\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) }))) (if_statement "if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }" if (parenthesized_expression "(0.0 <= local_43c)" ( (binary_expression "0.0 <= local_43c" number_literal <= identifier) )) (compound_statement "{\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }" { (if_statement "if (local_43c <= 1.0) goto LAB_001ee1db;" if (parenthesized_expression "(local_43c <= 1.0)" ( (binary_expression "local_43c <= 1.0" identifier <= number_literal) )) (goto_statement "goto LAB_001ee1db;" goto statement_identifier ;)) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xec39d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xec39d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec39d)" * (cast_expression "(float *)(unaff_EDI + 0xec39d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec39d)" ( (binary_expression "unaff_EDI + 0xec39d" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001ee1e7;" goto statement_identifier ;) })) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= local_438) goto LAB_001ee1f9;" if (parenthesized_expression "(0.0 <= local_438)" ( (binary_expression "0.0 <= local_438" number_literal <= identifier) )) (goto_statement "goto LAB_001ee1f9;" goto statement_identifier ;)) (labeled_statement "LAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);" statement_identifier : (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;)) }))) (expression_statement "local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" identifier = (binary_expression "ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar2)" identifier (argument_list "(fVar2)" ( identifier ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) )))))) ;) (expression_statement "local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);" (assignment_expression "local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" (pointer_expression "*(float *)(unaff_EDI + 0xec3b1)" * (cast_expression "(float *)(unaff_EDI + 0xec3b1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b1)" ( (binary_expression "unaff_EDI + 0xec3b1" identifier + number_literal) )))) * (call_expression "ROUND(fVar3)" identifier (argument_list "(fVar3)" ( identifier ))))) ;) (expression_statement "local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad)" identifier = (binary_expression "ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar6)" identifier (argument_list "(fVar6)" ( identifier ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) )))))) ;) (if_statement "if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }" if (parenthesized_expression "(local_44c < 0.0)" ( (binary_expression "local_44c < 0.0" identifier < number_literal) )) (compound_statement "{\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;" statement_identifier : (if_statement "if (0.0 <= local_448) goto LAB_001ee3ad;" if (parenthesized_expression "(0.0 <= local_448)" ( (binary_expression "0.0 <= local_448" number_literal <= identifier) )) (goto_statement "goto LAB_001ee3ad;" goto statement_identifier ;))) (labeled_statement "LAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);" statement_identifier : (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;" statement_identifier : (if_statement "if (0.0 <= local_444) goto LAB_001ee3d4;" if (parenthesized_expression "(0.0 <= local_444)" ( (binary_expression "0.0 <= local_444" number_literal <= identifier) )) (goto_statement "goto LAB_001ee3d4;" goto statement_identifier ;))) (labeled_statement "LAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);" statement_identifier : (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }" else (compound_statement "{\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }" { (if_statement "if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }" if (parenthesized_expression "(1.0 < local_44c)" ( (binary_expression "1.0 < local_44c" number_literal < identifier) )) (compound_statement "{\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec399)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec399)" * (cast_expression "(float *)(unaff_EDI + 0xec399)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec399)" ( (binary_expression "unaff_EDI + 0xec399" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001ee39c;" goto statement_identifier ;) })) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031)" (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))) + (binary_expression "local_44c * *(float *)(unaff_EDI + 0xd9031)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))))) ;) (if_statement "if (local_448 < 0.0) goto LAB_001ee81d;" if (parenthesized_expression "(local_448 < 0.0)" ( (binary_expression "local_448 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_001ee81d;" goto statement_identifier ;)) (labeled_statement "LAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }" statement_identifier : (if_statement "if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }" if (parenthesized_expression "(1.0 < local_448)" ( (binary_expression "1.0 < local_448" number_literal < identifier) )) (compound_statement "{\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }" { (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xec39d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xec39d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec39d)" * (cast_expression "(float *)(unaff_EDI + 0xec39d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec39d)" ( (binary_expression "unaff_EDI + 0xec39d" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001ee3c3;" goto statement_identifier ;) }))) (expression_statement "fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d)" identifier = (binary_expression "local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d)" (binary_expression "local_448 * *(float *)(unaff_EDI + 0xdf975)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" * (cast_expression "(float *)(unaff_EDI + 0xdf975)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf975)" ( (binary_expression "unaff_EDI + 0xdf975" identifier + number_literal) ))))) + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))))) ;) (if_statement "if (local_444 < 0.0) goto LAB_001ee7e9;" if (parenthesized_expression "(local_444 < 0.0)" ( (binary_expression "local_444 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_001ee7e9;" goto statement_identifier ;)) (labeled_statement "LAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }" statement_identifier : (if_statement "if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }" if (parenthesized_expression "(1.0 < local_444)" ( (binary_expression "1.0 < local_444" number_literal < identifier) )) (compound_statement "{\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }" { (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xec399)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec399)" * (cast_expression "(float *)(unaff_EDI + 0xec399)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec399)" ( (binary_expression "unaff_EDI + 0xec399" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }" else (compound_statement "{\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }" { (expression_statement "fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d)" identifier = (binary_expression "local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d)" (binary_expression "local_444 * *(float *)(unaff_EDI + 0xd9031)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))) + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))))) ;) })))) }))) (expression_statement "uVar10 = (undefined2)((uint)local_38c >> 0x10);" (assignment_expression "uVar10 = (undefined2)((uint)local_38c >> 0x10)" identifier = (call_expression "(undefined2)((uint)local_38c >> 0x10)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "((uint)local_38c >> 0x10)" ( (binary_expression "(uint)local_38c >> 0x10" (cast_expression "(uint)local_38c" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }" if (parenthesized_expression "(fVar6 <= 0.0)" ( (binary_expression "fVar6 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }" { (expression_statement "local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);" (assignment_expression "local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800)" identifier = (cast_expression "(float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800)" ( (binary_expression "CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800" (binary_expression "CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff" (call_expression "CONCAT22(uVar10,in_FPUControlWord)" identifier (argument_list "(uVar10,in_FPUControlWord)" ( identifier , identifier ))) & number_literal) | number_literal) )))) ;) }) (else_clause "else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }" else (compound_statement "{\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }" { (expression_statement "local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);" (assignment_expression "local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400)" identifier = (cast_expression "(float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400)" ( (binary_expression "CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400" (binary_expression "CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff" (call_expression "CONCAT22(uVar10,in_FPUControlWord)" identifier (argument_list "(uVar10,in_FPUControlWord)" ( identifier , identifier ))) & number_literal) | number_literal) )))) ;) }))) (expression_statement "local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);" (assignment_expression "local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord)" identifier = (cast_expression "(float)CONCAT22(local_39c._2_2_,in_FPUControlWord)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT22(local_39c._2_2_,in_FPUControlWord)" identifier (argument_list "(local_39c._2_2_,in_FPUControlWord)" ( (field_expression "local_39c._2_2_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" identifier = (binary_expression "ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar2)" identifier (argument_list "(fVar2)" ( identifier ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) )))))) ;) (expression_statement "local_1c0 = local_440;" (assignment_expression "local_1c0 = local_440" identifier = identifier) ;) (expression_statement "local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);" (assignment_expression "local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" (pointer_expression "*(float *)(unaff_EDI + 0xec3b1)" * (cast_expression "(float *)(unaff_EDI + 0xec3b1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b1)" ( (binary_expression "unaff_EDI + 0xec3b1" identifier + number_literal) )))) * (call_expression "ROUND(fVar3)" identifier (argument_list "(fVar3)" ( identifier ))))) ;) (expression_statement "local_1bc = local_43c;" (assignment_expression "local_1bc = local_43c" identifier = identifier) ;) (expression_statement "local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad)" identifier = (binary_expression "ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar6)" identifier (argument_list "(fVar6)" ( identifier ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) )))))) ;) (expression_statement "local_1b8 = local_438;" (assignment_expression "local_1b8 = local_438" identifier = identifier) ;) (expression_statement "local_1b4 = local_44c;" (assignment_expression "local_1b4 = local_44c" identifier = identifier) ;) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec3b5);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec3b5)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec3b5)" * (cast_expression "(float *)(unaff_EDI + 0xec3b5)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b5)" ( (binary_expression "unaff_EDI + 0xec3b5" identifier + number_literal) ))))) ;) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xec3b9);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xec3b9)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec3b9)" * (cast_expression "(float *)(unaff_EDI + 0xec3b9)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b9)" ( (binary_expression "unaff_EDI + 0xec3b9" identifier + number_literal) ))))) ;) (expression_statement "local_1b0 = local_448;" (assignment_expression "local_1b0 = local_448" identifier = identifier) ;) (expression_statement "local_1ac = local_444;" (assignment_expression "local_1ac = local_444" identifier = identifier) ;) (expression_statement "local_1a8 = local_44c * fVar3 + local_440 * fVar2;" (assignment_expression "local_1a8 = local_44c * fVar3 + local_440 * fVar2" identifier = (binary_expression "local_44c * fVar3 + local_440 * fVar2" (binary_expression "local_44c * fVar3" identifier * identifier) + (binary_expression "local_440 * fVar2" identifier * identifier))) ;) (expression_statement "local_1a4 = local_448 * fVar3 + local_43c * fVar2;" (assignment_expression "local_1a4 = local_448 * fVar3 + local_43c * fVar2" identifier = (binary_expression "local_448 * fVar3 + local_43c * fVar2" (binary_expression "local_448 * fVar3" identifier * identifier) + (binary_expression "local_43c * fVar2" identifier * identifier))) ;) (expression_statement "local_1a0 = local_444 * fVar3 + local_438 * fVar2;" (assignment_expression "local_1a0 = local_444 * fVar3 + local_438 * fVar2" identifier = (binary_expression "local_444 * fVar3 + local_438 * fVar2" (binary_expression "local_444 * fVar3" identifier * identifier) + (binary_expression "local_438 * fVar2" identifier * identifier))) ;) (expression_statement "local_19c = local_44c * fVar2 + local_440 * fVar3;" (assignment_expression "local_19c = local_44c * fVar2 + local_440 * fVar3" identifier = (binary_expression "local_44c * fVar2 + local_440 * fVar3" (binary_expression "local_44c * fVar2" identifier * identifier) + (binary_expression "local_440 * fVar3" identifier * identifier))) ;) (expression_statement "local_198 = local_448 * fVar2 + local_43c * fVar3;" (assignment_expression "local_198 = local_448 * fVar2 + local_43c * fVar3" identifier = (binary_expression "local_448 * fVar2 + local_43c * fVar3" (binary_expression "local_448 * fVar2" identifier * identifier) + (binary_expression "local_43c * fVar3" identifier * identifier))) ;) (expression_statement "local_194 = fVar3 * local_438 + local_444 * fVar2;" (assignment_expression "local_194 = fVar3 * local_438 + local_444 * fVar2" identifier = (binary_expression "fVar3 * local_438 + local_444 * fVar2" (binary_expression "fVar3 * local_438" identifier * identifier) + (binary_expression "local_444 * fVar2" identifier * identifier))) ;) (if_statement "if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }" if (parenthesized_expression "(0 < (int)local_4d4)" ( (binary_expression "0 < (int)local_4d4" number_literal < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }" { (expression_statement "pbVar28 = local_a0;" (assignment_expression "pbVar28 = local_a0" identifier = identifier) ;) (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar28 + (int)local_4d4;" (assignment_expression "pbVar18 = pbVar28 + (int)local_4d4" identifier = (binary_expression "pbVar28 + (int)local_4d4" identifier + (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);" do (compound_statement "{\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec3a1);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec3a1)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec3a1)" * (cast_expression "(float *)(unaff_EDI + 0xec3a1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3a1)" ( (binary_expression "unaff_EDI + 0xec3a1" identifier + number_literal) ))))) ;) (expression_statement "pfVar22 = &local_1c0;" (assignment_expression "pfVar22 = &local_1c0" identifier = (pointer_expression "&local_1c0" & identifier)) ;) (do_statement "do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);" do (compound_statement "{\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  }" { (expression_statement "fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);" (assignment_expression "fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22)" identifier = (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22)" (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1])" (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[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 ])) )))) + (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)) ))))) ;) (if_statement "if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }" if (parenthesized_expression "(fVar3 < fVar2)" ( (binary_expression "fVar3 < fVar2" identifier < identifier) )) (compound_statement "{\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }" { (expression_statement "iVar24 = iVar12;" (assignment_expression "iVar24 = iVar12" identifier = identifier) ;) (expression_statement "fVar2 = fVar3;" (assignment_expression "fVar2 = fVar3" identifier = identifier) ;) })) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "pfVar22 = pfVar22 + 3;" (assignment_expression "pfVar22 = pfVar22 + 3" identifier = (binary_expression "pfVar22 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 != 4)" ( (binary_expression "iVar12 != 4" identifier != number_literal) )) ;) (expression_statement "*pbVar28 = (byte)iVar24;" (assignment_expression "*pbVar28 = (byte)iVar24" (pointer_expression "*pbVar28" * identifier) = (cast_expression "(byte)iVar24" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 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 "(pbVar28 != pbVar18)" ( (binary_expression "pbVar28 != pbVar18" identifier != identifier) )) ;) })) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);" do (compound_statement "{\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              }" { (if_statement "if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }" if (parenthesized_expression "(local_300[iVar24] == -NAN)" ( (binary_expression "local_300[iVar24] == -NAN" (subscript_expression "local_300[iVar24]" identifier [ identifier ]) == (unary_expression "-NAN" - identifier)) )) (compound_statement "{\n                  local_c0[iVar24] = 3;\n                }" { (expression_statement "local_c0[iVar24] = 3;" (assignment_expression "local_c0[iVar24] = 3" (subscript_expression "local_c0[iVar24]" identifier [ identifier ]) = number_literal) ;) }) (else_clause "else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }" else (compound_statement "{\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }" { (expression_statement "local_c0[iVar24] = local_a0[(int)local_300[iVar24]];" (assignment_expression "local_c0[iVar24] = local_a0[(int)local_300[iVar24]]" (subscript_expression "local_c0[iVar24]" identifier [ identifier ]) = (subscript_expression "local_a0[(int)local_300[iVar24]]" identifier [ (cast_expression "(int)local_300[iVar24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_300[iVar24]" identifier [ identifier ])) ])) ;) }))) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != 0x10)" ( (binary_expression "iVar24 != 0x10" identifier != number_literal) )) ;) }))) (labeled_statement "LAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);" statement_identifier : (expression_statement "FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);" (call_expression "FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0)" identifier (argument_list "(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) }) (else_clause "else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }" else (compound_statement "{\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }" { (expression_statement "local_4b0 = 0xff;" (assignment_expression "local_4b0 = 0xff" identifier = number_literal) ;) (expression_statement "local_4d4 = 0.0;" (assignment_expression "local_4d4 = 0.0" identifier = number_literal) ;) (expression_statement "local_4ac = 3.57331e-43;" (assignment_expression "local_4ac = 3.57331e-43" identifier = number_literal) ;) (expression_statement "local_4b8 = 0.0;" (assignment_expression "local_4b8 = 0.0" identifier = number_literal) ;) (expression_statement "local_4a0 = 0;" (assignment_expression "local_4a0 = 0" identifier = number_literal) ;) (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" identifier = number_literal) ;) (do_statement "do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);" do (compound_statement "{\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            }" { (if_statement "if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }" if (parenthesized_expression "(0 < iVar24)" ( (binary_expression "0 < iVar24" number_literal < identifier) )) (compound_statement "{\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }" { (expression_statement "iVar13 = *(int *)(iVar11 + 0x2a8);" (assignment_expression "iVar13 = *(int *)(iVar11 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar11 + 0x2a8)" * (cast_expression "(int *)(iVar11 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2a8)" ( (binary_expression "iVar11 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(iVar11 + 0x298) * 8;" (assignment_expression "iVar14 = *(int *)(iVar11 + 0x298) * 8" identifier = (binary_expression "*(int *)(iVar11 + 0x298) * 8" (pointer_expression "*(int *)(iVar11 + 0x298)" * (cast_expression "(int *)(iVar11 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x298)" ( (binary_expression "iVar11 + 0x298" identifier + number_literal) )))) * number_literal)) ;) (expression_statement "local_4e0 = (float)((int)local_4c0 << 4);" (assignment_expression "local_4e0 = (float)((int)local_4c0 << 4)" identifier = (cast_expression "(float)((int)local_4c0 << 4)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)local_4c0 << 4)" ( (binary_expression "(int)local_4c0 << 4" (cast_expression "(int)local_4c0" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar33 = local_4a8;" (assignment_expression "iVar33 = local_4a8" identifier = identifier) ;) (do_statement "do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);" do (compound_statement "{\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                }" { (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" identifier = number_literal) ;) (expression_statement "local_4dc._0_1_ = 0xff;" (assignment_expression "local_4dc._0_1_ = 0xff" (field_expression "local_4dc._0_1_" identifier . field_identifier) = number_literal) ;) (if_statement "if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar26 == 0x35545844)" ( (binary_expression "iVar26 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }" { (if_statement "if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(iVar11 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(iVar11 + 0x2a8) + 0x34" (pointer_expression "*(int *)(iVar11 + 0x2a8)" * (cast_expression "(int *)(iVar11 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2a8)" ( (binary_expression "iVar11 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }" { (labeled_statement "LAB_001ed600:\n                      local_4b8 = 3.57331e-43;" statement_identifier : (expression_statement "local_4b8 = 3.57331e-43;" (assignment_expression "local_4b8 = 3.57331e-43" identifier = number_literal) ;)) }) (else_clause "else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }" else (compound_statement "{\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }" { (expression_statement "dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8)" identifier = (pointer_expression "*(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8)" ( (binary_expression "iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar11 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(iVar11 + 0x2a8) + 0x38" (pointer_expression "*(int *)(iVar11 + 0x2a8)" * (cast_expression "(int *)(iVar11 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2a8)" ( (binary_expression "iVar11 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }" if (parenthesized_expression "(dVar7 <= 0.0)" ( (binary_expression "dVar7 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "local_4dc._0_1_ = 0;" (assignment_expression "local_4dc._0_1_ = 0" (field_expression "local_4dc._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_4b0 = 0;" (assignment_expression "local_4b0 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }" else (compound_statement "{\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }" { (expression_statement "dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);" (assignment_expression "dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149)" identifier = (binary_expression "dVar7 / (double)*(float *)(unaff_EDI + 0xbb149)" identifier / (cast_expression "(double)*(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" * (cast_expression "(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb149)" ( (binary_expression "unaff_EDI + 0xbb149" identifier + number_literal) ))))))) ;) (if_statement "if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;" if (parenthesized_expression "((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7)" ( (binary_expression "(double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7" (cast_expression "(double)*(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) ))))) <= identifier) )) (goto_statement "goto LAB_001ed600;" goto statement_identifier ;)) (expression_statement "local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));" (assignment_expression "local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" (field_expression "local_4dc._0_1_" identifier . field_identifier) = (cast_expression "(byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" identifier (argument_list "(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" ( (binary_expression "dVar7 + (double)*(float *)(unaff_EDI + 0xb227d)" identifier + (cast_expression "(double)*(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))))) )))))) ;) (expression_statement "uVar15 = (uint)local_4dc._0_1_;" (assignment_expression "uVar15 = (uint)local_4dc._0_1_" identifier = (cast_expression "(uint)local_4dc._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_4dc._0_1_" identifier . field_identifier))) ;) (if_statement "if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }" if (parenthesized_expression "(uVar15 < local_4b0)" ( (binary_expression "uVar15 < local_4b0" identifier < identifier) )) (compound_statement "{\n                          local_4b0 = uVar15;\n                        }" { (expression_statement "local_4b0 = uVar15;" (assignment_expression "local_4b0 = uVar15" identifier = identifier) ;) })) (if_statement "if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }" if (parenthesized_expression "((uint)local_4b8 < uVar15)" ( (binary_expression "(uint)local_4b8 < uVar15" (cast_expression "(uint)local_4b8" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )) (compound_statement "{\n                          local_4b8 = (float)uVar15;\n                        }" { (expression_statement "local_4b8 = (float)uVar15;" (assignment_expression "local_4b8 = (float)uVar15" identifier = (cast_expression "(float)uVar15" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }" if (parenthesized_expression "(local_4dc._0_1_ == 0)" ( (binary_expression "local_4dc._0_1_ == 0" (field_expression "local_4dc._0_1_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                          uVar15 = 0;\n                        }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }" else (compound_statement "{\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }" { (if_statement "if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }" if (parenthesized_expression "(uVar15 < (uint)local_4ac)" ( (binary_expression "uVar15 < (uint)local_4ac" identifier < (cast_expression "(uint)local_4ac" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                            local_4ac = (float)uVar15;\n                          }" { (expression_statement "local_4ac = (float)uVar15;" (assignment_expression "local_4ac = (float)uVar15" identifier = (cast_expression "(float)uVar15" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }" if (parenthesized_expression "(local_4dc._0_1_ == 0xff)" ( (binary_expression "local_4dc._0_1_ == 0xff" (field_expression "local_4dc._0_1_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                            uVar15 = 0xff;\n                          }" { (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" identifier = number_literal) ;) }) (else_clause "else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }" else (if_statement "if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }" if (parenthesized_expression "(local_4a0 < uVar15)" ( (binary_expression "local_4a0 < uVar15" identifier < identifier) )) (compound_statement "{\n                            local_4a0 = uVar15;\n                          }" { (expression_statement "local_4a0 = uVar15;" (assignment_expression "local_4a0 = uVar15" identifier = identifier) ;) })))) }))) }))) }))) })) (expression_statement "*(uint *)((int)local_340 + (int)local_4e0) = uVar15;" (assignment_expression "*(uint *)((int)local_340 + (int)local_4e0) = uVar15" (pointer_expression "*(uint *)((int)local_340 + (int)local_4e0)" * (cast_expression "(uint *)((int)local_340 + (int)local_4e0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_340 + (int)local_4e0)" ( (binary_expression "(int)local_340 + (int)local_4e0" (cast_expression "(int)local_340" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) (expression_statement "fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);" (assignment_expression "fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8)" identifier = (cast_expression "(float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8)" * (cast_expression "(double *)(iVar33 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + *(int *)(iVar13 + 8) * 8)" ( (binary_expression "iVar33 + *(int *)(iVar13 + 8) * 8" identifier + (binary_expression "*(int *)(iVar13 + 8) * 8" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(NAN(fVar2))" ( (call_expression "NAN(fVar2)" identifier (argument_list "(fVar2)" ( identifier ))) )) (compound_statement "{\n                    fVar2 = 0.0;\n                  }" { (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (if_statement "if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(fVar2 <= 0.0)" ( (binary_expression "fVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    fVar2 = 0.0;\n                  }" { (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (compound_statement "{\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" { (expression_statement "fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);" (assignment_expression "fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149)" identifier = (binary_expression "fVar2 / *(float *)(unaff_EDI + 0xbb149)" identifier / (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" * (cast_expression "(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb149)" ( (binary_expression "unaff_EDI + 0xbb149" identifier + number_literal) )))))) ;) (if_statement "if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" if (parenthesized_expression "(*(float *)(unaff_EDI + 0xbb14d) <= fVar2)" ( (binary_expression "*(float *)(unaff_EDI + 0xbb14d) <= fVar2" (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                      fVar2 = 1.0;\n                    }" { (expression_statement "fVar2 = 1.0;" (assignment_expression "fVar2 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" else (compound_statement "{\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" { (expression_statement "fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" identifier = (binary_expression "(float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (cast_expression "(float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (binary_expression "(short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff" (cast_expression "(short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d))" identifier (argument_list "(fVar2 + *(float *)(unaff_EDI + 0xb227d))" ( (binary_expression "fVar2 + *(float *)(unaff_EDI + 0xb227d)" identifier + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) )))) & number_literal) ))) / (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))))) ;) }))) }))))) (expression_statement "fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);" (assignment_expression "fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8)" identifier = (cast_expression "(float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8)" * (cast_expression "(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + *(int *)(iVar13 + 0x14) * 8)" ( (binary_expression "iVar33 + *(int *)(iVar13 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(NAN(fVar3))" ( (call_expression "NAN(fVar3)" identifier (argument_list "(fVar3)" ( identifier ))) )) (compound_statement "{\n                    fVar3 = 0.0;\n                  }" { (expression_statement "fVar3 = 0.0;" (assignment_expression "fVar3 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (if_statement "if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(fVar3 <= 0.0)" ( (binary_expression "fVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    fVar3 = 0.0;\n                  }" { (expression_statement "fVar3 = 0.0;" (assignment_expression "fVar3 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (compound_statement "{\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" { (expression_statement "fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);" (assignment_expression "fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149)" identifier = (binary_expression "fVar3 / *(float *)(unaff_EDI + 0xbb149)" identifier / (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" * (cast_expression "(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb149)" ( (binary_expression "unaff_EDI + 0xbb149" identifier + number_literal) )))))) ;) (if_statement "if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" if (parenthesized_expression "(*(float *)(unaff_EDI + 0xbb14d) <= fVar3)" ( (binary_expression "*(float *)(unaff_EDI + 0xbb14d) <= fVar3" (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                      fVar3 = 1.0;\n                    }" { (expression_statement "fVar3 = 1.0;" (assignment_expression "fVar3 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" else (compound_statement "{\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" { (expression_statement "fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" identifier = (binary_expression "(float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (cast_expression "(float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (binary_expression "(short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff" (cast_expression "(short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d))" identifier (argument_list "(fVar3 + *(float *)(unaff_EDI + 0xb227d))" ( (binary_expression "fVar3 + *(float *)(unaff_EDI + 0xb227d)" identifier + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) )))) & number_literal) ))) / (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))))) ;) }))) }))))) (expression_statement "fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);" (assignment_expression "fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8)" identifier = (cast_expression "(float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8)" * (cast_expression "(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + *(int *)(iVar13 + 0x20) * 8)" ( (binary_expression "iVar33 + *(int *)(iVar13 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(NAN(fVar6))" ( (call_expression "NAN(fVar6)" identifier (argument_list "(fVar6)" ( identifier ))) )) (compound_statement "{\n                    fVar6 = 0.0;\n                  }" { (expression_statement "fVar6 = 0.0;" (assignment_expression "fVar6 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (if_statement "if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(fVar6 <= 0.0)" ( (binary_expression "fVar6 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    fVar6 = 0.0;\n                  }" { (expression_statement "fVar6 = 0.0;" (assignment_expression "fVar6 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (compound_statement "{\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" { (expression_statement "fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);" (assignment_expression "fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149)" identifier = (binary_expression "fVar6 / *(float *)(unaff_EDI + 0xbb149)" identifier / (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" * (cast_expression "(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb149)" ( (binary_expression "unaff_EDI + 0xbb149" identifier + number_literal) )))))) ;) (if_statement "if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" if (parenthesized_expression "(*(float *)(unaff_EDI + 0xbb14d) <= fVar6)" ( (binary_expression "*(float *)(unaff_EDI + 0xbb14d) <= fVar6" (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                      fVar6 = 1.0;\n                    }" { (expression_statement "fVar6 = 1.0;" (assignment_expression "fVar6 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" else (compound_statement "{\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" { (expression_statement "fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" identifier = (binary_expression "(float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (cast_expression "(float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (binary_expression "(short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff" (cast_expression "(short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d))" identifier (argument_list "(fVar6 + *(float *)(unaff_EDI + 0xb227d))" ( (binary_expression "fVar6 + *(float *)(unaff_EDI + 0xb227d)" identifier + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) )))) & number_literal) ))) / (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))))) ;) }))) }))))) (if_statement "if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    fVar4 = 1.0;\n                  }" { (expression_statement "fVar4 = 1.0;" (assignment_expression "fVar4 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }" else (compound_statement "{\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }" { (expression_statement "fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);" (assignment_expression "fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5)" identifier = (binary_expression "(float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5)" (cast_expression "(float)(uVar15 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar15 + 1)" ( (binary_expression "uVar15 + 1" identifier + number_literal) ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3a5)" * (cast_expression "(float *)(unaff_EDI + 0xec3a5)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3a5)" ( (binary_expression "unaff_EDI + 0xec3a5" identifier + number_literal) )))))) ;) }))) (expression_statement "iVar33 = iVar33 + iVar14;" (assignment_expression "iVar33 = iVar33 + iVar14" identifier = (binary_expression "iVar33 + iVar14" identifier + identifier)) ;) (if_statement "if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }" if (parenthesized_expression "(0 < (int)local_4d4)" ( (binary_expression "0 < (int)local_4d4" number_literal < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }" { (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" identifier = identifier) ;) (expression_statement "fVar27 = 0.0;" (assignment_expression "fVar27 = 0.0" identifier = number_literal) ;) (do_statement "do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);" do (compound_statement "{\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    }" { (if_statement "if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }" if (parenthesized_expression "((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844))))" ( (binary_expression "(((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))" (parenthesized_expression "(((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))" ( (binary_expression "((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6)" (parenthesized_expression "((*pfVar21 == fVar2) && (pfVar21[1] == fVar3))" ( (binary_expression "(*pfVar21 == fVar2) && (pfVar21[1] == fVar3)" (parenthesized_expression "(*pfVar21 == fVar2)" ( (binary_expression "*pfVar21 == fVar2" (pointer_expression "*pfVar21" * identifier) == identifier) )) && (parenthesized_expression "(pfVar21[1] == fVar3)" ( (binary_expression "pfVar21[1] == fVar3" (subscript_expression "pfVar21[1]" identifier [ number_literal ]) == identifier) ))) )) && (parenthesized_expression "(pfVar21[2] == fVar6)" ( (binary_expression "pfVar21[2] == fVar6" (subscript_expression "pfVar21[2]" identifier [ number_literal ]) == identifier) ))) )) && (parenthesized_expression "(((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))" ( (parenthesized_expression "((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844))" ( (binary_expression "(char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)" (binary_expression "(char)local_4dc._0_1_ < '\0'" (cast_expression "(char)local_4dc._0_1_" ( (type_descriptor "char" primitive_type) ) (field_expression "local_4dc._0_1_" identifier . field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(iVar26 == 0x35545844)" ( (binary_expression "iVar26 == 0x35545844" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }" { (expression_statement "local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];" (assignment_expression "local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3]" (subscript_expression "local_2c0[(int)fVar27 * 4 + 3]" identifier [ (binary_expression "(int)fVar27 * 4 + 3" (binary_expression "(int)fVar27 * 4" (cast_expression "(int)fVar27" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = (binary_expression "fVar4 + local_2c0[(int)fVar27 * 4 + 3]" identifier + (subscript_expression "local_2c0[(int)fVar27 * 4 + 3]" identifier [ (binary_expression "(int)fVar27 * 4 + 3" (binary_expression "(int)fVar27 * 4" (cast_expression "(int)fVar27" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) ;) (expression_statement "*(float *)((int)local_300 + (int)local_4e0) = fVar27;" (assignment_expression "*(float *)((int)local_300 + (int)local_4e0) = fVar27" (pointer_expression "*(float *)((int)local_300 + (int)local_4e0)" * (cast_expression "(float *)((int)local_300 + (int)local_4e0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_300 + (int)local_4e0)" ( (binary_expression "(int)local_300 + (int)local_4e0" (cast_expression "(int)local_300" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) (goto_statement "goto LAB_001ed2a5;" goto statement_identifier ;) })) (expression_statement "fVar27 = (float)((int)fVar27 + 1);" (assignment_expression "fVar27 = (float)((int)fVar27 + 1)" identifier = (cast_expression "(float)((int)fVar27 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)fVar27 + 1)" ( (binary_expression "(int)fVar27 + 1" (cast_expression "(int)fVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pfVar21 = pfVar21 + 4;" (assignment_expression "pfVar21 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(fVar27 != local_4d4)" ( (binary_expression "fVar27 != local_4d4" identifier != identifier) )) ;) })) (expression_statement "local_2c0[(int)local_4d4 * 4] = fVar2;" (assignment_expression "local_2c0[(int)local_4d4 * 4] = fVar2" (subscript_expression "local_2c0[(int)local_4d4 * 4]" identifier [ (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) = identifier) ;) (expression_statement "local_2c0[(int)local_4d4 * 4 + 1] = fVar3;" (assignment_expression "local_2c0[(int)local_4d4 * 4 + 1] = fVar3" (subscript_expression "local_2c0[(int)local_4d4 * 4 + 1]" identifier [ (binary_expression "(int)local_4d4 * 4 + 1" (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "local_2c0[(int)local_4d4 * 4 + 2] = fVar6;" (assignment_expression "local_2c0[(int)local_4d4 * 4 + 2] = fVar6" (subscript_expression "local_2c0[(int)local_4d4 * 4 + 2]" identifier [ (binary_expression "(int)local_4d4 * 4 + 2" (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "local_2c0[(int)local_4d4 * 4 + 3] = fVar4;" (assignment_expression "local_2c0[(int)local_4d4 * 4 + 3] = fVar4" (subscript_expression "local_2c0[(int)local_4d4 * 4 + 3]" identifier [ (binary_expression "(int)local_4d4 * 4 + 3" (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "*(float *)((int)local_300 + (int)local_4e0) = local_4d4;" (assignment_expression "*(float *)((int)local_300 + (int)local_4e0) = local_4d4" (pointer_expression "*(float *)((int)local_300 + (int)local_4e0)" * (cast_expression "(float *)((int)local_300 + (int)local_4e0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_300 + (int)local_4e0)" ( (binary_expression "(int)local_300 + (int)local_4e0" (cast_expression "(int)local_300" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) (expression_statement "local_4d4 = (float)((int)local_4d4 + 1);" (assignment_expression "local_4d4 = (float)((int)local_4d4 + 1)" identifier = (cast_expression "(float)((int)local_4d4 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)local_4d4 + 1)" ( (binary_expression "(int)local_4d4 + 1" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);" statement_identifier : (expression_statement "local_4e0 = (float)((int)local_4e0 + 4);" (assignment_expression "local_4e0 = (float)((int)local_4e0 + 4)" identifier = (cast_expression "(float)((int)local_4e0 + 4)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)local_4e0 + 4)" ( (binary_expression "(int)local_4e0 + 4" (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0)" ( (binary_expression "(float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0" (cast_expression "(float)((iVar24 + (int)local_4c0 * 4) * 4)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((iVar24 + (int)local_4c0 * 4) * 4)" ( (binary_expression "(iVar24 + (int)local_4c0 * 4) * 4" (parenthesized_expression "(iVar24 + (int)local_4c0 * 4)" ( (binary_expression "iVar24 + (int)local_4c0 * 4" identifier + (binary_expression "(int)local_4c0 * 4" (cast_expression "(int)local_4c0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )) * number_literal) ))) != identifier) )) ;) (expression_statement "local_4a8 = local_4a8 + iVar14 * iVar24;" (assignment_expression "local_4a8 = local_4a8 + iVar14 * iVar24" identifier = (binary_expression "local_4a8 + iVar14 * iVar24" identifier + (binary_expression "iVar14 * iVar24" identifier * identifier))) ;) })) (expression_statement "local_4c0 = (float)((int)local_4c0 + 1);" (assignment_expression "local_4c0 = (float)((int)local_4c0 + 1)" identifier = (cast_expression "(float)((int)local_4c0 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)local_4c0 + 1)" ( (binary_expression "(int)local_4c0 + 1" (cast_expression "(int)local_4c0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(local_4c0 != (float)iVar12)" ( (binary_expression "local_4c0 != (float)iVar12" identifier != (cast_expression "(float)iVar12" ( (type_descriptor "float" primitive_type) ) identifier)) )) ;) (if_statement "if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }" if (parenthesized_expression "(0 < (int)local_4d4)" ( (binary_expression "0 < (int)local_4d4" number_literal < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }" { (expression_statement "pfVar21 = local_2c0 + 3;" (assignment_expression "pfVar21 = local_2c0 + 3" identifier = (binary_expression "local_2c0 + 3" identifier + number_literal)) ;) (expression_statement "pfVar22 = pfVar21 + (int)local_4d4 * 4;" (assignment_expression "pfVar22 = pfVar21 + (int)local_4d4 * 4" identifier = (binary_expression "pfVar21 + (int)local_4d4 * 4" identifier + (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);" do (compound_statement "{\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              }" { (expression_statement "fVar2 = *pfVar21;" (assignment_expression "fVar2 = *pfVar21" identifier = (pointer_expression "*pfVar21" * identifier)) ;) (if_statement "if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }" if (parenthesized_expression "(fVar2 < 0.0)" ( (binary_expression "fVar2 < 0.0" identifier < number_literal) )) (compound_statement "{\n                  sqrtf(fVar2);\n                }" { (expression_statement "sqrtf(fVar2);" (call_expression "sqrtf(fVar2)" identifier (argument_list "(fVar2)" ( identifier ))) ;) })) (expression_statement "*pfVar21 = SQRT(fVar2);" (assignment_expression "*pfVar21 = SQRT(fVar2)" (pointer_expression "*pfVar21" * identifier) = (call_expression "SQRT(fVar2)" identifier (argument_list "(fVar2)" ( identifier )))) ;) (expression_statement "pfVar21 = pfVar21 + 4;" (assignment_expression "pfVar21 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pfVar22 != pfVar21)" ( (binary_expression "pfVar22 != pfVar21" identifier != identifier) )) ;) })) (if_statement "if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }" if (parenthesized_expression "(iVar26 == 0x35545844)" ( (binary_expression "iVar26 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }" { (if_statement "if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;" if (parenthesized_expression "(local_4a0 < (uint)local_4ac)" ( (binary_expression "local_4a0 < (uint)local_4ac" identifier < (cast_expression "(uint)local_4ac" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                local_4ac = (float)local_4a0;\n              }" { (expression_statement "local_4ac = (float)local_4a0;" (assignment_expression "local_4ac = (float)local_4a0" identifier = (cast_expression "(float)local_4a0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;" else (if_statement "if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;" if (parenthesized_expression "(4 < local_4a0 - (int)local_4ac)" ( (binary_expression "4 < local_4a0 - (int)local_4ac" number_literal < (binary_expression "local_4a0 - (int)local_4ac" identifier - (cast_expression "(int)local_4ac" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_001ee710;" goto statement_identifier ;)))) (expression_statement "local_4a0 = 0xff;" (assignment_expression "local_4a0 = 0xff" identifier = number_literal) ;) (if_statement "if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }" if (parenthesized_expression "((int)local_4ac + 5U < 0x100)" ( (binary_expression "(int)local_4ac + 5U < 0x100" (binary_expression "(int)local_4ac + 5U" (cast_expression "(int)local_4ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) < number_literal) )) (compound_statement "{\n                local_4a0 = (int)local_4ac + 5U;\n              }" { (expression_statement "local_4a0 = (int)local_4ac + 5U;" (assignment_expression "local_4a0 = (int)local_4ac + 5U" identifier = (binary_expression "(int)local_4ac + 5U" (cast_expression "(int)local_4ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) })) (if_statement "if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }" if (parenthesized_expression "(local_4a0 - (int)local_4ac < 5)" ( (binary_expression "local_4a0 - (int)local_4ac < 5" (binary_expression "local_4a0 - (int)local_4ac" identifier - (cast_expression "(int)local_4ac" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n                local_4ac = (float)(local_4a0 - 5);\n              }" { (expression_statement "local_4ac = (float)(local_4a0 - 5);" (assignment_expression "local_4ac = (float)(local_4a0 - 5)" identifier = (cast_expression "(float)(local_4a0 - 5)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(local_4a0 - 5)" ( (binary_expression "local_4a0 - 5" identifier - number_literal) )))) ;) })) (labeled_statement "LAB_001ee710:\n              pbVar28 = local_b0;" statement_identifier : (expression_statement "pbVar28 = local_b0;" (assignment_expression "pbVar28 = local_b0" identifier = identifier) ;)) (expression_statement "uVar15 = FUN_001e9410(local_340,pbVar28);" (assignment_expression "uVar15 = FUN_001e9410(local_340,pbVar28)" identifier = (call_expression "FUN_001e9410(local_340,pbVar28)" identifier (argument_list "(local_340,pbVar28)" ( identifier , identifier )))) ;) (if_statement "if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" if (parenthesized_expression "((uint)local_4b8 < local_4b0)" ( (binary_expression "(uint)local_4b8 < local_4b0" (cast_expression "(uint)local_4b8" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )) (compound_statement "{\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }" { (labeled_statement "LAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;" statement_identifier : (expression_statement "uVar19 = (int)local_4b8 + 7;" (assignment_expression "uVar19 = (int)local_4b8 + 7" identifier = (binary_expression "(int)local_4b8 + 7" (cast_expression "(int)local_4b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;)) (if_statement "if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }" if (parenthesized_expression "(0xff < uVar19)" ( (binary_expression "0xff < uVar19" number_literal < identifier) )) (compound_statement "{\n                  uVar19 = 0xff;\n                }" { (expression_statement "uVar19 = 0xff;" (assignment_expression "uVar19 = 0xff" identifier = number_literal) ;) })) (if_statement "if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }" if (parenthesized_expression "(uVar19 - (int)local_4b8 < 7)" ( (binary_expression "uVar19 - (int)local_4b8 < 7" (binary_expression "uVar19 - (int)local_4b8" identifier - (cast_expression "(int)local_4b8" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }" { (expression_statement "local_4b0 = uVar19 - 7;" (assignment_expression "local_4b0 = uVar19 - 7" identifier = (binary_expression "uVar19 - 7" identifier - number_literal)) ;) (expression_statement "local_4b8 = (float)uVar19;" (assignment_expression "local_4b8 = (float)uVar19" identifier = (cast_expression "(float)uVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }" else (compound_statement "{\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }" { (expression_statement "local_4b0 = (uint)local_4b8;" (assignment_expression "local_4b0 = (uint)local_4b8" identifier = (cast_expression "(uint)local_4b8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_4b8 = (float)uVar19;" (assignment_expression "local_4b8 = (float)uVar19" identifier = (cast_expression "(float)uVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) }) (else_clause "else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" else (if_statement "if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" if (parenthesized_expression "((int)local_4b8 - local_4b0 < 7)" ( (binary_expression "(int)local_4b8 - local_4b0 < 7" (binary_expression "(int)local_4b8 - local_4b0" (cast_expression "(int)local_4b8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) < number_literal) )) (compound_statement "{\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" { (expression_statement "local_4b8 = (float)local_4b0;" (assignment_expression "local_4b8 = (float)local_4b0" identifier = (cast_expression "(float)local_4b0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_001eea60;" goto statement_identifier ;) })))) (expression_statement "uVar19 = FUN_001e9410(local_340,local_a0);" (assignment_expression "uVar19 = FUN_001e9410(local_340,local_a0)" identifier = (call_expression "FUN_001e9410(local_340,local_a0)" identifier (argument_list "(local_340,local_a0)" ( identifier , identifier )))) ;) (if_statement "if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }" if (parenthesized_expression "(uVar19 < uVar15)" ( (binary_expression "uVar19 < uVar15" identifier < identifier) )) (compound_statement "{\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);" do (compound_statement "{\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                }" { (while_statement "while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }" while (parenthesized_expression "(bVar25 = local_a0[iVar24], bVar25 == 0)" ( (comma_expression "bVar25 = local_a0[iVar24], bVar25 == 0" (assignment_expression "bVar25 = local_a0[iVar24]" identifier = (subscript_expression "local_a0[iVar24]" identifier [ identifier ])) , (binary_expression "bVar25 == 0" identifier == number_literal)) )) (compound_statement "{\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }" { (expression_statement "pbVar28[iVar24] = 1;" (assignment_expression "pbVar28[iVar24] = 1" (subscript_expression "pbVar28[iVar24]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (if_statement "if (iVar24 == 0x10) goto LAB_001ee8cf;" if (parenthesized_expression "(iVar24 == 0x10)" ( (binary_expression "iVar24 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_001ee8cf;" goto statement_identifier ;)) })) (expression_statement "bVar23 = 9 - bVar25;" (assignment_expression "bVar23 = 9 - bVar25" identifier = (binary_expression "9 - bVar25" number_literal - identifier)) ;) (if_statement "if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }" if (parenthesized_expression "(bVar25 == 1)" ( (binary_expression "bVar25 == 1" identifier == number_literal) )) (compound_statement "{\n                    bVar23 = 0;\n                  }" { (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) })) (expression_statement "iVar12 = iVar24 + 1;" (assignment_expression "iVar12 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "pbVar28[iVar24] = bVar23;" (assignment_expression "pbVar28[iVar24] = bVar23" (subscript_expression "pbVar28[iVar24]" identifier [ identifier ]) = identifier) ;) (expression_statement "iVar24 = iVar12;" (assignment_expression "iVar24 = iVar12" identifier = identifier) ;) }) while (parenthesized_expression "(iVar12 != 0x10)" ( (binary_expression "iVar12 != 0x10" identifier != number_literal) )) ;) }) (else_clause "else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }" else (compound_statement "{\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }" { (expression_statement "local_4b0 = local_4a0;" (assignment_expression "local_4b0 = local_4a0" identifier = identifier) ;) (expression_statement "local_4b8 = local_4ac;" (assignment_expression "local_4b8 = local_4ac" identifier = identifier) ;) }))) (labeled_statement "LAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);" statement_identifier : (expression_statement "WriteBlobByte(iVar11,local_4b8);" (call_expression "WriteBlobByte(iVar11,local_4b8)" identifier (argument_list "(iVar11,local_4b8)" ( identifier , identifier ))) ;)) (expression_statement "WriteBlobByte(iVar11,local_4b0);" (call_expression "WriteBlobByte(iVar11,local_4b0)" identifier (argument_list "(iVar11,local_4b0)" ( identifier , identifier ))) ;) (do_statement "do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);" do (compound_statement "{\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);" do (compound_statement "{\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                }" { (expression_statement "pbVar18 = pbVar28 + iVar24;" (assignment_expression "pbVar18 = pbVar28 + iVar24" identifier = (binary_expression "pbVar28 + iVar24" identifier + identifier)) ;) (expression_statement "cVar9 = (char)iVar24;" (assignment_expression "cVar9 = (char)iVar24" identifier = (cast_expression "(char)iVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);" (assignment_expression "uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU)" identifier = (binary_expression "uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU)" identifier | (binary_expression "(uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU)" (binary_expression "(uint)*pbVar18" (parenthesized_expression "(uint)" ( identifier )) * identifier) << (parenthesized_expression "(cVar9 * '\x03' & 0x1fU)" ( (binary_expression "cVar9 * '\x03' & 0x1fU" (binary_expression "cVar9 * '\x03'" identifier * (char_literal "'\x03'" ' escape_sequence ')) & number_literal) ))))) ;) }) while (parenthesized_expression "(iVar24 != 8)" ( (binary_expression "iVar24 != 8" identifier != number_literal) )) ;) (expression_statement "pbVar28 = pbVar28 + 8;" (assignment_expression "pbVar28 = pbVar28 + 8" identifier = (binary_expression "pbVar28 + 8" identifier + number_literal)) ;) (expression_statement "WriteBlobByte(iVar11,uVar15 & 0xff);" (call_expression "WriteBlobByte(iVar11,uVar15 & 0xff)" identifier (argument_list "(iVar11,uVar15 & 0xff)" ( identifier , (binary_expression "uVar15 & 0xff" identifier & number_literal) ))) ;) (expression_statement "WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);" (call_expression "WriteBlobByte(iVar11,uVar15 >> 8 & 0xff)" identifier (argument_list "(iVar11,uVar15 >> 8 & 0xff)" ( identifier , (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal) ))) ;) (expression_statement "WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);" (call_expression "WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff)" identifier (argument_list "(iVar11,uVar15 >> 0x10 & 0xff)" ( identifier , (binary_expression "uVar15 >> 0x10 & 0xff" (binary_expression "uVar15 >> 0x10" identifier >> number_literal) & number_literal) ))) ;) }) while (parenthesized_expression "(local_a0 != pbVar28)" ( (binary_expression "local_a0 != pbVar28" identifier != identifier) )) ;) })) (if_statement "if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }" if (parenthesized_expression "(local_4d4 != 1.4013e-45)" ( (binary_expression "local_4d4 != 1.4013e-45" identifier != number_literal) )) (compound_statement "{\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }" { (expression_statement "fVar6 = 0.0;" (assignment_expression "fVar6 = 0.0" identifier = number_literal) ;) (if_statement "if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }" if (parenthesized_expression "(local_4d4 == 0.0)" ( (binary_expression "local_4d4 == 0.0" identifier == number_literal) )) (compound_statement "{\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }" { (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" identifier = number_literal) ;) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" identifier = number_literal) ;) (expression_statement "fVar2 = fVar6;" (assignment_expression "fVar2 = fVar6" identifier = identifier) ;) (expression_statement "fVar3 = local_4c0;" (assignment_expression "fVar3 = local_4c0" identifier = identifier) ;) }) (else_clause "else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }" else (compound_statement "{\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }" { (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4b8 = 0.0;" (assignment_expression "local_4b8 = 0.0" identifier = number_literal) ;) (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" identifier = identifier) ;) (do_statement "do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);" do (compound_statement "{\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                }" { (expression_statement "fVar3 = pfVar21[3];" (assignment_expression "fVar3 = pfVar21[3]" identifier = (subscript_expression "pfVar21[3]" identifier [ number_literal ])) ;) (expression_statement "pfVar22 = pfVar21 + 4;" (assignment_expression "pfVar22 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) (expression_statement "fVar2 = fVar2 + fVar3;" (assignment_expression "fVar2 = fVar2 + fVar3" identifier = (binary_expression "fVar2 + fVar3" identifier + identifier)) ;) (expression_statement "local_4b8 = *pfVar21 * fVar3 + local_4b8;" (assignment_expression "local_4b8 = *pfVar21 * fVar3 + local_4b8" identifier = (binary_expression "*pfVar21 * fVar3 + local_4b8" (binary_expression "*pfVar21 * fVar3" (pointer_expression "*pfVar21" * identifier) * identifier) + identifier)) ;) (expression_statement "local_4c0 = pfVar21[1] * fVar3 + local_4c0;" (assignment_expression "local_4c0 = pfVar21[1] * fVar3 + local_4c0" identifier = (binary_expression "pfVar21[1] * fVar3 + local_4c0" (binary_expression "pfVar21[1] * fVar3" (subscript_expression "pfVar21[1]" identifier [ number_literal ]) * identifier) + identifier)) ;) (expression_statement "fVar6 = fVar3 * pfVar21[2] + fVar6;" (assignment_expression "fVar6 = fVar3 * pfVar21[2] + fVar6" identifier = (binary_expression "fVar3 * pfVar21[2] + fVar6" (binary_expression "fVar3 * pfVar21[2]" identifier * (subscript_expression "pfVar21[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "pfVar21 = pfVar22;" (assignment_expression "pfVar21 = pfVar22" identifier = identifier) ;) }) while (parenthesized_expression "(local_2c0 + (int)local_4d4 * 4 != pfVar22)" ( (binary_expression "local_2c0 + (int)local_4d4 * 4 != pfVar22" (binary_expression "local_2c0 + (int)local_4d4 * 4" identifier + (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (if_statement "if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }" if (parenthesized_expression "(*(float *)(unaff_EDI + 0xec3a9) < fVar2)" ( (binary_expression "*(float *)(unaff_EDI + 0xec3a9) < fVar2" (pointer_expression "*(float *)(unaff_EDI + 0xec3a9)" * (cast_expression "(float *)(unaff_EDI + 0xec3a9)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3a9)" ( (binary_expression "unaff_EDI + 0xec3a9" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }" { (expression_statement "local_4b8 = local_4b8 / fVar2;" (assignment_expression "local_4b8 = local_4b8 / fVar2" identifier = (binary_expression "local_4b8 / fVar2" identifier / identifier)) ;) (expression_statement "local_4c0 = local_4c0 / fVar2;" (assignment_expression "local_4c0 = local_4c0 / fVar2" identifier = (binary_expression "local_4c0 / fVar2" identifier / identifier)) ;) (expression_statement "fVar6 = fVar6 / fVar2;" (assignment_expression "fVar6 = fVar6 / fVar2" identifier = (binary_expression "fVar6 / fVar2" identifier / identifier)) ;) })) (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" identifier = number_literal) ;) (expression_statement "fVar3 = 0.0;" (assignment_expression "fVar3 = 0.0" identifier = number_literal) ;) (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" identifier = number_literal) ;) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" identifier = number_literal) ;) (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" identifier = identifier) ;) (do_statement "do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);" do (compound_statement "{\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                }" { (expression_statement "pfVar22 = pfVar21 + 4;" (assignment_expression "pfVar22 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) (expression_statement "fVar5 = *pfVar21 - local_4b8;" (assignment_expression "fVar5 = *pfVar21 - local_4b8" identifier = (binary_expression "*pfVar21 - local_4b8" (pointer_expression "*pfVar21" * identifier) - identifier)) ;) (expression_statement "fVar8 = pfVar21[1] - local_4c0;" (assignment_expression "fVar8 = pfVar21[1] - local_4c0" identifier = (binary_expression "pfVar21[1] - local_4c0" (subscript_expression "pfVar21[1]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "fVar4 = pfVar21[3];" (assignment_expression "fVar4 = pfVar21[3]" identifier = (subscript_expression "pfVar21[3]" identifier [ number_literal ])) ;) (expression_statement "fVar27 = (pfVar21[2] - fVar6) * fVar4;" (assignment_expression "fVar27 = (pfVar21[2] - fVar6) * fVar4" identifier = (binary_expression "(pfVar21[2] - fVar6) * fVar4" (parenthesized_expression "(pfVar21[2] - fVar6)" ( (binary_expression "pfVar21[2] - fVar6" (subscript_expression "pfVar21[2]" identifier [ number_literal ]) - identifier) )) * identifier)) ;) (expression_statement "local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;" (assignment_expression "local_4cc = fVar4 * fVar5 * fVar5 + local_4cc" identifier = (binary_expression "fVar4 * fVar5 * fVar5 + local_4cc" (binary_expression "fVar4 * fVar5 * fVar5" (binary_expression "fVar4 * fVar5" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "fVar2 = fVar5 * fVar8 * fVar4 + fVar2;" (assignment_expression "fVar2 = fVar5 * fVar8 * fVar4 + fVar2" identifier = (binary_expression "fVar5 * fVar8 * fVar4 + fVar2" (binary_expression "fVar5 * fVar8 * fVar4" (binary_expression "fVar5 * fVar8" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "local_4dc = fVar5 * fVar27 + local_4dc;" (assignment_expression "local_4dc = fVar5 * fVar27 + local_4dc" identifier = (binary_expression "fVar5 * fVar27 + local_4dc" (binary_expression "fVar5 * fVar27" identifier * identifier) + identifier)) ;) (expression_statement "fVar3 = fVar8 * fVar4 * fVar8 + fVar3;" (assignment_expression "fVar3 = fVar8 * fVar4 * fVar8 + fVar3" identifier = (binary_expression "fVar8 * fVar4 * fVar8 + fVar3" (binary_expression "fVar8 * fVar4 * fVar8" (binary_expression "fVar8 * fVar4" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "local_4e0 = fVar8 * fVar27 + local_4e0;" (assignment_expression "local_4e0 = fVar8 * fVar27 + local_4e0" identifier = (binary_expression "fVar8 * fVar27 + local_4e0" (binary_expression "fVar8 * fVar27" identifier * identifier) + identifier)) ;) (expression_statement "local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;" (assignment_expression "local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0" identifier = (binary_expression "(pfVar21[2] - fVar6) * fVar27 + local_4d0" (binary_expression "(pfVar21[2] - fVar6) * fVar27" (parenthesized_expression "(pfVar21[2] - fVar6)" ( (binary_expression "pfVar21[2] - fVar6" (subscript_expression "pfVar21[2]" identifier [ number_literal ]) - identifier) )) * identifier) + identifier)) ;) (expression_statement "pfVar21 = pfVar22;" (assignment_expression "pfVar21 = pfVar22" identifier = identifier) ;) }) while (parenthesized_expression "(local_2c0 + (int)local_4d4 * 4 != pfVar22)" ( (binary_expression "local_2c0 + (int)local_4d4 * 4 != pfVar22" (binary_expression "local_2c0 + (int)local_4d4 * 4" identifier + (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) }))) (goto_statement "goto LAB_001ed457;" goto statement_identifier ;) })) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xbb14d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) ))))) ;) (expression_statement "local_4dc = -NAN;" (assignment_expression "local_4dc = -NAN" identifier = (unary_expression "-NAN" - identifier)) ;) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" identifier = number_literal) ;) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);" (assignment_expression "uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3)" identifier = (cast_expression "(uint)ROUND(local_2c0[0] * fVar2 + fVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(local_2c0[0] * fVar2 + fVar3)" identifier (argument_list "(local_2c0[0] * fVar2 + fVar3)" ( (binary_expression "local_2c0[0] * fVar2 + fVar3" (binary_expression "local_2c0[0] * fVar2" (subscript_expression "local_2c0[0]" identifier [ number_literal ]) * 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) ;) })) (expression_statement "local_c0[0] = (byte)uVar15;" (assignment_expression "local_c0[0] = (byte)uVar15" (subscript_expression "local_c0[0]" identifier [ number_literal ]) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);" (assignment_expression "uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3)" identifier = (cast_expression "(uint)ROUND(local_2c0[1] * fVar2 + fVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(local_2c0[1] * fVar2 + fVar3)" identifier (argument_list "(local_2c0[1] * fVar2 + fVar3)" ( (binary_expression "local_2c0[1] * fVar2 + fVar3" (binary_expression "local_2c0[1] * fVar2" (subscript_expression "local_2c0[1]" identifier [ number_literal ]) * identifier) + identifier) ))))) ;) (if_statement "if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }" if (parenthesized_expression "(0xff < uVar19)" ( (binary_expression "0xff < uVar19" number_literal < identifier) )) (compound_statement "{\n              uVar19 = 0xff;\n            }" { (expression_statement "uVar19 = 0xff;" (assignment_expression "uVar19 = 0xff" identifier = number_literal) ;) })) (expression_statement "local_c0[1] = (char)uVar19;" (assignment_expression "local_c0[1] = (char)uVar19" (subscript_expression "local_c0[1]" identifier [ number_literal ]) = (cast_expression "(char)uVar19" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);" (assignment_expression "uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3)" identifier = (cast_expression "(uint)ROUND(fVar2 * local_2c0[2] + fVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(fVar2 * local_2c0[2] + fVar3)" identifier (argument_list "(fVar2 * local_2c0[2] + fVar3)" ( (binary_expression "fVar2 * local_2c0[2] + fVar3" (binary_expression "fVar2 * local_2c0[2]" identifier * (subscript_expression "local_2c0[2]" identifier [ number_literal ])) + identifier) ))))) ;) (if_statement "if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }" if (parenthesized_expression "(0xff < uVar29)" ( (binary_expression "0xff < uVar29" number_literal < identifier) )) (compound_statement "{\n              uVar29 = 0xff;\n            }" { (expression_statement "uVar29 = 0xff;" (assignment_expression "uVar29 = 0xff" identifier = number_literal) ;) })) (expression_statement "local_c0[2] = (char)uVar29;" (assignment_expression "local_c0[2] = (char)uVar29" (subscript_expression "local_c0[2]" identifier [ number_literal ]) = (cast_expression "(char)uVar29" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar20 = uVar15;" (assignment_expression "uVar20 = uVar15" identifier = identifier) ;) (while_statement "while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }" { (expression_statement "iVar24 = (int)local_4e0 * 3;" (assignment_expression "iVar24 = (int)local_4e0 * 3" identifier = (binary_expression "(int)local_4e0 * 3" (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);" (assignment_expression "pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24)" identifier = (cast_expression "(byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24)" ( (binary_expression "*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24" (binary_expression "*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6" (pointer_expression "*(int *)(unaff_EDI + 0x1ef625)" * (cast_expression "(int *)(unaff_EDI + 0x1ef625)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1ef625)" ( (binary_expression "unaff_EDI + 0x1ef625" identifier + number_literal) )))) + (binary_expression "(uVar20 & 0xff) * 6" (parenthesized_expression "(uVar20 & 0xff)" ( (binary_expression "uVar20 & 0xff" identifier & number_literal) )) * number_literal)) + identifier) )))) ;) (expression_statement "pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);" (assignment_expression "pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24)" identifier = (cast_expression "(byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24)" ( (binary_expression "(uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24" (binary_expression "(uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629)" (binary_expression "(uVar19 & 0xff) * 6" (parenthesized_expression "(uVar19 & 0xff)" ( (binary_expression "uVar19 & 0xff" identifier & number_literal) )) * number_literal) + (pointer_expression "*(int *)(unaff_EDI + 0x1ef629)" * (cast_expression "(int *)(unaff_EDI + 0x1ef629)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1ef629)" ( (binary_expression "unaff_EDI + 0x1ef629" identifier + number_literal) ))))) + identifier) )))) ;) (expression_statement "pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));" (assignment_expression "pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d))" identifier = (cast_expression "(byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d))" ( (binary_expression "iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d)" (binary_expression "iVar24 + (uVar29 & 0xff) * 6" identifier + (binary_expression "(uVar29 & 0xff) * 6" (parenthesized_expression "(uVar29 & 0xff)" ( (binary_expression "uVar29 & 0xff" identifier & number_literal) )) * number_literal)) + (pointer_expression "*(int *)(unaff_EDI + 0x1ef62d)" * (cast_expression "(int *)(unaff_EDI + 0x1ef62d)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1ef62d)" ( (binary_expression "unaff_EDI + 0x1ef62d" identifier + number_literal) ))))) )))) ;) (expression_statement "uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];" (assignment_expression "uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2]" identifier = (binary_expression "(uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2]" (binary_expression "(uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2]" (binary_expression "(uint)pbVar28[2] * (uint)pbVar28[2]" (cast_expression "(uint)pbVar28[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar28[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar28[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar28[2]" identifier [ number_literal ]))) + (binary_expression "(uint)pbVar18[2] * (uint)pbVar18[2]" (cast_expression "(uint)pbVar18[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar18[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar18[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar18[2]" identifier [ number_literal ])))) + (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 ]))))) ;) (if_statement "if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }" if (parenthesized_expression "(uVar20 <= (uint)local_4dc)" ( (binary_expression "uVar20 <= (uint)local_4dc" identifier <= (cast_expression "(uint)local_4dc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xd9031)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))) ;) (expression_statement "local_39c = (float)*pbVar31 / fVar2;" (assignment_expression "local_39c = (float)*pbVar31 / fVar2" identifier = (binary_expression "(float)*pbVar31 / fVar2" (cast_expression "(float)*pbVar31" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar31" * identifier)) / identifier)) ;) (expression_statement "local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);" (assignment_expression "local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975)" identifier = (binary_expression "(float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975)" (cast_expression "(float)*pbVar28" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar28" * identifier)) / (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" * (cast_expression "(float *)(unaff_EDI + 0xdf975)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf975)" ( (binary_expression "unaff_EDI + 0xdf975" identifier + number_literal) )))))) ;) (expression_statement "local_394 = (float)*pbVar18 / fVar2;" (assignment_expression "local_394 = (float)*pbVar18 / fVar2" identifier = (binary_expression "(float)*pbVar18 / fVar2" (cast_expression "(float)*pbVar18" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar18" * identifier)) / identifier)) ;) (expression_statement "local_38c = (float)pbVar31[1] / fVar2;" (assignment_expression "local_38c = (float)pbVar31[1] / fVar2" identifier = (binary_expression "(float)pbVar31[1] / fVar2" (cast_expression "(float)pbVar31[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar31[1]" identifier [ number_literal ])) / identifier)) ;) (expression_statement "bVar25 = local_4e0._0_1_ * '\x02';" (assignment_expression "bVar25 = local_4e0._0_1_ * '\x02'" identifier = (binary_expression "local_4e0._0_1_ * '\x02'" (field_expression "local_4e0._0_1_" identifier . field_identifier) * (char_literal "'\x02'" ' escape_sequence '))) ;) (expression_statement "local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));" (assignment_expression "local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975))" identifier = (cast_expression "(undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975))" ( (binary_expression "(float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975)" (cast_expression "(float)pbVar28[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar28[1]" identifier [ number_literal ])) / (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" * (cast_expression "(float *)(unaff_EDI + 0xdf975)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf975)" ( (binary_expression "unaff_EDI + 0xdf975" identifier + number_literal) ))))) )))) ;) (expression_statement "local_384 = (float *)((float)pbVar18[1] / fVar2);" (assignment_expression "local_384 = (float *)((float)pbVar18[1] / fVar2)" identifier = (cast_expression "(float *)((float)pbVar18[1] / fVar2)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((float)pbVar18[1] / fVar2)" ( (binary_expression "(float)pbVar18[1] / fVar2" (cast_expression "(float)pbVar18[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar18[1]" identifier [ number_literal ])) / identifier) )))) ;) (expression_statement "local_4dc = (float)uVar20;" (assignment_expression "local_4dc = (float)uVar20" identifier = (cast_expression "(float)uVar20" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (local_4e0 == 1.4013e-45) break;" if (parenthesized_expression "(local_4e0 == 1.4013e-45)" ( (binary_expression "local_4e0 == 1.4013e-45" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar20 = uVar15 & 0xff;" (assignment_expression "uVar20 = uVar15 & 0xff" identifier = (binary_expression "uVar15 & 0xff" identifier & number_literal)) ;) (expression_statement "local_4e0 = 1.4013e-45;" (assignment_expression "local_4e0 = 1.4013e-45" identifier = number_literal) ;) })) (expression_statement "pbVar28 = local_b0;" (assignment_expression "pbVar28 = local_b0" identifier = identifier) ;) (do_statement "do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);" do (compound_statement "{\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            }" { (expression_statement "*pbVar28 = bVar25;" (assignment_expression "*pbVar28 = bVar25" (pointer_expression "*pbVar28" * identifier) = identifier) ;) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_a0 != pbVar28)" ( (binary_expression "local_a0 != pbVar28" identifier != identifier) )) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);" do (compound_statement "{\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            }" { (while_statement "while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }" while (parenthesized_expression "(local_300[iVar24] != -NAN)" ( (binary_expression "local_300[iVar24] != -NAN" (subscript_expression "local_300[iVar24]" identifier [ identifier ]) != (unary_expression "-NAN" - identifier)) )) (compound_statement "{\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }" { (expression_statement "local_a0[iVar24] = local_b0[(int)local_300[iVar24]];" (assignment_expression "local_a0[iVar24] = local_b0[(int)local_300[iVar24]]" (subscript_expression "local_a0[iVar24]" identifier [ identifier ]) = (subscript_expression "local_b0[(int)local_300[iVar24]]" identifier [ (cast_expression "(int)local_300[iVar24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_300[iVar24]" identifier [ identifier ])) ])) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (if_statement "if (iVar24 == 0x10) goto LAB_001edf11;" if (parenthesized_expression "(iVar24 == 0x10)" ( (binary_expression "iVar24 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_001edf11;" goto statement_identifier ;)) })) (expression_statement "local_a0[iVar24] = 3;" (assignment_expression "local_a0[iVar24] = 3" (subscript_expression "local_a0[iVar24]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != 0x10)" ( (binary_expression "iVar24 != 0x10" identifier != number_literal) )) ;) (labeled_statement "LAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);" statement_identifier : (expression_statement "FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);" (call_expression "FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0)" identifier (argument_list "(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) }))) (expression_statement "uVar19 = *(uint *)(iVar11 + 0x18);" (assignment_expression "uVar19 = *(uint *)(iVar11 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x18)" * (cast_expression "(uint *)(iVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(uint *)(iVar11 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(iVar11 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x1c)" * (cast_expression "(uint *)(iVar11 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = uVar1;" (assignment_expression "uVar29 = uVar1" identifier = identifier) ;) }) while (parenthesized_expression "((int)uVar1 < (int)uVar19)" ( (binary_expression "(int)uVar1 < (int)uVar19" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "local_474 = uVar35;" (assignment_expression "local_474 = uVar35" identifier = identifier) ;) }) while (parenthesized_expression "((int)uVar35 < (int)uVar15)" ( (binary_expression "(int)uVar35 < (int)uVar15" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }" { comment (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nvoid WriteFourCC(Image *image,size_t compression,MagickBooleanType clusterFit,\n                MagickBooleanType weightByAlpha,ExceptionInfo *exception)\n\n{\n  uint uVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  uchar uVar6;\n  int iVar7;\n  PixelChannelMap *pPVar8;\n  float fVar9;\n  float fVar10;\n  float fVar11;\n  double dVar12;\n  char cVar13;\n  DDSVector3 start_00;\n  DDSVector3 start_01;\n  DDSVector3 axis_00;\n  DDSVector3 axis_01;\n  DDSVector3 end_00;\n  DDSVector3 end_01;\n  undefined2 uVar14;\n  byte bVar15;\n  int iVar16;\n  Image *image_00;\n  size_t sVar17;\n  int iVar18;\n  uint uVar19;\n  float *pfVar20;\n  MagickBooleanType MVar21;\n  byte *pbVar22;\n  uint uVar23;\n  uint uVar24;\n  uchar *puVar25;\n  size_t sVar26;\n  byte extraout_CL;\n  uchar uVar27;\n  size_t columns;\n  byte bVar28;\n  int iVar29;\n  float fVar30;\n  uint uVar31;\n  byte *pbVar32;\n  int iVar33;\n  byte bVar34;\n  byte *pbVar35;\n  byte bVar36;\n  Quantum *pQVar37;\n  float *pfVar38;\n  DDSVector4 *pDVar39;\n  byte bVar40;\n  uint uVar41;\n  DDSVector4 *pDVar42;\n  uchar *puVar43;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined2 in_FPUControlWord;\n  undefined8 uVar44;\n  MagickSizeType MVar45;\n  uchar *in_stack_fffffb10;\n  size_t in_stack_fffffb14;\n  float local_4e0;\n  float local_4dc;\n  float local_4d4;\n  float local_4d0;\n  float local_4cc;\n  float local_4c0;\n  float local_4b8;\n  float local_4b4;\n  uint local_4b0;\n  float local_4ac;\n  Quantum *local_4a8;\n  uint local_4a0;\n  uint local_474;\n  DDSVector3 end;\n  DDSVector3 start;\n  DDSVector3 axis;\n  undefined4 local_41c;\n  undefined4 local_418;\n  undefined4 local_414;\n  undefined4 local_410;\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  ushort __cwtmp;\n  undefined4 *local_388;\n  DDSVector3 *local_384;\n  DDSVector3 *local_380;\n  DDSVector4 *local_37c;\n  DDSVector4 *local_378;\n  DDSVector4 *local_374;\n  DDSVector4 *local_370;\n  DDSVector4 *local_36c;\n  DDSVector4 *local_368;\n  DDSVector4 *local_364;\n  DDSVector4 *local_360;\n  DDSVector4 *local_35c;\n  undefined4 local_358;\n  DDSVector4 *local_354;\n  int local_350;\n  int local_34c;\n  int local_348;\n  DDSVector4 *local_344;\n  ssize_t alphas [16];\n  ssize_t map [16];\n  DDSVector4 points [16];\n  DDSVector4 pointsWeights [16];\n  uchar indices [16];\n  uchar unordered [16];\n  uchar order [128];\n  \n  uVar44 = __x86_get_pc_thunk_di();\n  iVar29 = (int)((ulonglong)uVar44 >> 0x20);\n  image_00 = (Image *)uVar44;\n  local_474 = 0;\n  iVar7 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar26 = image_00->rows;\n  if (0 < (int)sVar26) {\n    do {\n      sVar17 = image_00->columns;\n      uVar41 = local_474 + 4;\n      uVar19 = 0;\n      if (0 < (int)sVar17) {\n        do {\n          uVar1 = uVar19 + 4;\n          columns = sVar17 - uVar19;\n          if (uVar1 < sVar17) {\n            columns = 4;\n          }\n          sVar17 = sVar26 - local_474;\n          if (uVar41 < sVar26) {\n            sVar17 = 4;\n          }\n          local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression);\n          if (local_4a8 == (Quantum *)0x0) {\n            sVar26 = image_00->rows;\n            break;\n          }\n          iVar18 = 0;\n          do {\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 0x10);\n          if ((int)sVar17 < 1) {\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }\n          sVar17 = image_00->columns;\n          sVar26 = image_00->rows;\n          uVar19 = uVar1;\n        } while ((int)uVar1 < (int)sVar17);\n      }\n      local_474 = uVar41;\n    } while ((int)uVar41 < (int)sVar26);\n  }\n  if (iVar7 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}\n\n" comment comment comment comment comment (function_definition "void WriteFourCC(Image *image,size_t compression,MagickBooleanType clusterFit,\n                MagickBooleanType weightByAlpha,ExceptionInfo *exception)\n\n{\n  uint uVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  uchar uVar6;\n  int iVar7;\n  PixelChannelMap *pPVar8;\n  float fVar9;\n  float fVar10;\n  float fVar11;\n  double dVar12;\n  char cVar13;\n  DDSVector3 start_00;\n  DDSVector3 start_01;\n  DDSVector3 axis_00;\n  DDSVector3 axis_01;\n  DDSVector3 end_00;\n  DDSVector3 end_01;\n  undefined2 uVar14;\n  byte bVar15;\n  int iVar16;\n  Image *image_00;\n  size_t sVar17;\n  int iVar18;\n  uint uVar19;\n  float *pfVar20;\n  MagickBooleanType MVar21;\n  byte *pbVar22;\n  uint uVar23;\n  uint uVar24;\n  uchar *puVar25;\n  size_t sVar26;\n  byte extraout_CL;\n  uchar uVar27;\n  size_t columns;\n  byte bVar28;\n  int iVar29;\n  float fVar30;\n  uint uVar31;\n  byte *pbVar32;\n  int iVar33;\n  byte bVar34;\n  byte *pbVar35;\n  byte bVar36;\n  Quantum *pQVar37;\n  float *pfVar38;\n  DDSVector4 *pDVar39;\n  byte bVar40;\n  uint uVar41;\n  DDSVector4 *pDVar42;\n  uchar *puVar43;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined2 in_FPUControlWord;\n  undefined8 uVar44;\n  MagickSizeType MVar45;\n  uchar *in_stack_fffffb10;\n  size_t in_stack_fffffb14;\n  float local_4e0;\n  float local_4dc;\n  float local_4d4;\n  float local_4d0;\n  float local_4cc;\n  float local_4c0;\n  float local_4b8;\n  float local_4b4;\n  uint local_4b0;\n  float local_4ac;\n  Quantum *local_4a8;\n  uint local_4a0;\n  uint local_474;\n  DDSVector3 end;\n  DDSVector3 start;\n  DDSVector3 axis;\n  undefined4 local_41c;\n  undefined4 local_418;\n  undefined4 local_414;\n  undefined4 local_410;\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  ushort __cwtmp;\n  undefined4 *local_388;\n  DDSVector3 *local_384;\n  DDSVector3 *local_380;\n  DDSVector4 *local_37c;\n  DDSVector4 *local_378;\n  DDSVector4 *local_374;\n  DDSVector4 *local_370;\n  DDSVector4 *local_36c;\n  DDSVector4 *local_368;\n  DDSVector4 *local_364;\n  DDSVector4 *local_360;\n  DDSVector4 *local_35c;\n  undefined4 local_358;\n  DDSVector4 *local_354;\n  int local_350;\n  int local_34c;\n  int local_348;\n  DDSVector4 *local_344;\n  ssize_t alphas [16];\n  ssize_t map [16];\n  DDSVector4 points [16];\n  DDSVector4 pointsWeights [16];\n  uchar indices [16];\n  uchar unordered [16];\n  uchar order [128];\n  \n  uVar44 = __x86_get_pc_thunk_di();\n  iVar29 = (int)((ulonglong)uVar44 >> 0x20);\n  image_00 = (Image *)uVar44;\n  local_474 = 0;\n  iVar7 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar26 = image_00->rows;\n  if (0 < (int)sVar26) {\n    do {\n      sVar17 = image_00->columns;\n      uVar41 = local_474 + 4;\n      uVar19 = 0;\n      if (0 < (int)sVar17) {\n        do {\n          uVar1 = uVar19 + 4;\n          columns = sVar17 - uVar19;\n          if (uVar1 < sVar17) {\n            columns = 4;\n          }\n          sVar17 = sVar26 - local_474;\n          if (uVar41 < sVar26) {\n            sVar17 = 4;\n          }\n          local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression);\n          if (local_4a8 == (Quantum *)0x0) {\n            sVar26 = image_00->rows;\n            break;\n          }\n          iVar18 = 0;\n          do {\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 0x10);\n          if ((int)sVar17 < 1) {\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }\n          sVar17 = image_00->columns;\n          sVar26 = image_00->rows;\n          uVar19 = uVar1;\n        } while ((int)uVar1 < (int)sVar17);\n      }\n      local_474 = uVar41;\n    } while ((int)uVar41 < (int)sVar26);\n  }\n  if (iVar7 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\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  uint uVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  uchar uVar6;\n  int iVar7;\n  PixelChannelMap *pPVar8;\n  float fVar9;\n  float fVar10;\n  float fVar11;\n  double dVar12;\n  char cVar13;\n  DDSVector3 start_00;\n  DDSVector3 start_01;\n  DDSVector3 axis_00;\n  DDSVector3 axis_01;\n  DDSVector3 end_00;\n  DDSVector3 end_01;\n  undefined2 uVar14;\n  byte bVar15;\n  int iVar16;\n  Image *image_00;\n  size_t sVar17;\n  int iVar18;\n  uint uVar19;\n  float *pfVar20;\n  MagickBooleanType MVar21;\n  byte *pbVar22;\n  uint uVar23;\n  uint uVar24;\n  uchar *puVar25;\n  size_t sVar26;\n  byte extraout_CL;\n  uchar uVar27;\n  size_t columns;\n  byte bVar28;\n  int iVar29;\n  float fVar30;\n  uint uVar31;\n  byte *pbVar32;\n  int iVar33;\n  byte bVar34;\n  byte *pbVar35;\n  byte bVar36;\n  Quantum *pQVar37;\n  float *pfVar38;\n  DDSVector4 *pDVar39;\n  byte bVar40;\n  uint uVar41;\n  DDSVector4 *pDVar42;\n  uchar *puVar43;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined2 in_FPUControlWord;\n  undefined8 uVar44;\n  MagickSizeType MVar45;\n  uchar *in_stack_fffffb10;\n  size_t in_stack_fffffb14;\n  float local_4e0;\n  float local_4dc;\n  float local_4d4;\n  float local_4d0;\n  float local_4cc;\n  float local_4c0;\n  float local_4b8;\n  float local_4b4;\n  uint local_4b0;\n  float local_4ac;\n  Quantum *local_4a8;\n  uint local_4a0;\n  uint local_474;\n  DDSVector3 end;\n  DDSVector3 start;\n  DDSVector3 axis;\n  undefined4 local_41c;\n  undefined4 local_418;\n  undefined4 local_414;\n  undefined4 local_410;\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  ushort __cwtmp;\n  undefined4 *local_388;\n  DDSVector3 *local_384;\n  DDSVector3 *local_380;\n  DDSVector4 *local_37c;\n  DDSVector4 *local_378;\n  DDSVector4 *local_374;\n  DDSVector4 *local_370;\n  DDSVector4 *local_36c;\n  DDSVector4 *local_368;\n  DDSVector4 *local_364;\n  DDSVector4 *local_360;\n  DDSVector4 *local_35c;\n  undefined4 local_358;\n  DDSVector4 *local_354;\n  int local_350;\n  int local_34c;\n  int local_348;\n  DDSVector4 *local_344;\n  ssize_t alphas [16];\n  ssize_t map [16];\n  DDSVector4 points [16];\n  DDSVector4 pointsWeights [16];\n  uchar indices [16];\n  uchar unordered [16];\n  uchar order [128];\n  \n  uVar44 = __x86_get_pc_thunk_di();\n  iVar29 = (int)((ulonglong)uVar44 >> 0x20);\n  image_00 = (Image *)uVar44;\n  local_474 = 0;\n  iVar7 = *(int *)(in_GS_OFFSET + 0x14);\n  sVar26 = image_00->rows;\n  if (0 < (int)sVar26) {\n    do {\n      sVar17 = image_00->columns;\n      uVar41 = local_474 + 4;\n      uVar19 = 0;\n      if (0 < (int)sVar17) {\n        do {\n          uVar1 = uVar19 + 4;\n          columns = sVar17 - uVar19;\n          if (uVar1 < sVar17) {\n            columns = 4;\n          }\n          sVar17 = sVar26 - local_474;\n          if (uVar41 < sVar26) {\n            sVar17 = 4;\n          }\n          local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression);\n          if (local_4a8 == (Quantum *)0x0) {\n            sVar26 = image_00->rows;\n            break;\n          }\n          iVar18 = 0;\n          do {\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 0x10);\n          if ((int)sVar17 < 1) {\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }\n          sVar17 = image_00->columns;\n          sVar26 = image_00->rows;\n          uVar19 = uVar1;\n        } while ((int)uVar1 < (int)sVar17);\n      }\n      local_474 = uVar41;\n    } while ((int)uVar41 < (int)sVar26);\n  }\n  if (iVar7 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "float fVar2;" primitive_type identifier ;) (declaration "float fVar3;" primitive_type identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "float fVar5;" primitive_type identifier ;) (declaration "uchar uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "PixelChannelMap *pPVar8;" type_identifier (pointer_declarator "*pPVar8" * identifier) ;) (declaration "float fVar9;" primitive_type identifier ;) (declaration "float fVar10;" primitive_type identifier ;) (declaration "float fVar11;" primitive_type identifier ;) (declaration "double dVar12;" primitive_type identifier ;) (declaration "char cVar13;" 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 axis_01;" type_identifier identifier ;) (declaration "DDSVector3 end_00;" type_identifier identifier ;) (declaration "DDSVector3 end_01;" type_identifier identifier ;) (declaration "undefined2 uVar14;" type_identifier identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "Image *image_00;" type_identifier (pointer_declarator "*image_00" * identifier) ;) (declaration "size_t sVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "float *pfVar20;" primitive_type (pointer_declarator "*pfVar20" * identifier) ;) (declaration "MagickBooleanType MVar21;" type_identifier identifier ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uchar *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "size_t sVar26;" primitive_type identifier ;) (declaration "byte extraout_CL;" type_identifier identifier ;) (declaration "uchar uVar27;" type_identifier identifier ;) (declaration "size_t columns;" primitive_type identifier ;) (declaration "byte bVar28;" type_identifier identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "float fVar30;" primitive_type identifier ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "byte *pbVar32;" type_identifier (pointer_declarator "*pbVar32" * identifier) ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "byte bVar34;" type_identifier identifier ;) (declaration "byte *pbVar35;" type_identifier (pointer_declarator "*pbVar35" * identifier) ;) (declaration "byte bVar36;" type_identifier identifier ;) (declaration "Quantum *pQVar37;" type_identifier (pointer_declarator "*pQVar37" * identifier) ;) (declaration "float *pfVar38;" primitive_type (pointer_declarator "*pfVar38" * identifier) ;) (declaration "DDSVector4 *pDVar39;" type_identifier (pointer_declarator "*pDVar39" * identifier) ;) (declaration "byte bVar40;" type_identifier identifier ;) (declaration "uint uVar41;" type_identifier identifier ;) (declaration "DDSVector4 *pDVar42;" type_identifier (pointer_declarator "*pDVar42" * identifier) ;) (declaration "uchar *puVar43;" type_identifier (pointer_declarator "*puVar43" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined2 in_FPUControlWord;" type_identifier identifier ;) (declaration "undefined8 uVar44;" type_identifier identifier ;) (declaration "MagickSizeType MVar45;" type_identifier identifier ;) (declaration "uchar *in_stack_fffffb10;" type_identifier (pointer_declarator "*in_stack_fffffb10" * identifier) ;) (declaration "size_t in_stack_fffffb14;" primitive_type identifier ;) (declaration "float local_4e0;" primitive_type identifier ;) (declaration "float local_4dc;" primitive_type identifier ;) (declaration "float local_4d4;" primitive_type identifier ;) (declaration "float local_4d0;" primitive_type identifier ;) (declaration "float local_4cc;" primitive_type identifier ;) (declaration "float local_4c0;" primitive_type identifier ;) (declaration "float local_4b8;" primitive_type identifier ;) (declaration "float local_4b4;" primitive_type identifier ;) (declaration "uint local_4b0;" type_identifier identifier ;) (declaration "float local_4ac;" primitive_type identifier ;) (declaration "Quantum *local_4a8;" type_identifier (pointer_declarator "*local_4a8" * identifier) ;) (declaration "uint local_4a0;" type_identifier identifier ;) (declaration "uint local_474;" type_identifier identifier ;) (declaration "DDSVector3 end;" type_identifier identifier ;) (declaration "DDSVector3 start;" type_identifier identifier ;) (declaration "DDSVector3 axis;" 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 "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 "ushort __cwtmp;" type_identifier identifier ;) (declaration "undefined4 *local_388;" type_identifier (pointer_declarator "*local_388" * identifier) ;) (declaration "DDSVector3 *local_384;" type_identifier (pointer_declarator "*local_384" * identifier) ;) (declaration "DDSVector3 *local_380;" type_identifier (pointer_declarator "*local_380" * identifier) ;) (declaration "DDSVector4 *local_37c;" type_identifier (pointer_declarator "*local_37c" * identifier) ;) (declaration "DDSVector4 *local_378;" type_identifier (pointer_declarator "*local_378" * identifier) ;) (declaration "DDSVector4 *local_374;" type_identifier (pointer_declarator "*local_374" * identifier) ;) (declaration "DDSVector4 *local_370;" type_identifier (pointer_declarator "*local_370" * identifier) ;) (declaration "DDSVector4 *local_36c;" type_identifier (pointer_declarator "*local_36c" * identifier) ;) (declaration "DDSVector4 *local_368;" type_identifier (pointer_declarator "*local_368" * identifier) ;) (declaration "DDSVector4 *local_364;" type_identifier (pointer_declarator "*local_364" * identifier) ;) (declaration "DDSVector4 *local_360;" type_identifier (pointer_declarator "*local_360" * identifier) ;) (declaration "DDSVector4 *local_35c;" type_identifier (pointer_declarator "*local_35c" * identifier) ;) (declaration "undefined4 local_358;" type_identifier identifier ;) (declaration "DDSVector4 *local_354;" type_identifier (pointer_declarator "*local_354" * identifier) ;) (declaration "int local_350;" primitive_type identifier ;) (declaration "int local_34c;" primitive_type identifier ;) (declaration "int local_348;" primitive_type identifier ;) (declaration "DDSVector4 *local_344;" type_identifier (pointer_declarator "*local_344" * 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 "DDSVector4 pointsWeights [16];" type_identifier (array_declarator "pointsWeights [16]" 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 order [128];" type_identifier (array_declarator "order [128]" identifier [ number_literal ]) ;) (expression_statement "uVar44 = __x86_get_pc_thunk_di();" (assignment_expression "uVar44 = __x86_get_pc_thunk_di()" identifier = (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar29 = (int)((ulonglong)uVar44 >> 0x20);" (assignment_expression "iVar29 = (int)((ulonglong)uVar44 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" ( (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "image_00 = (Image *)uVar44;" (assignment_expression "image_00 = (Image *)uVar44" identifier = (cast_expression "(Image *)uVar44" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_474 = 0;" (assignment_expression "local_474 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar7 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "sVar26 = image_00->rows;" (assignment_expression "sVar26 = image_00->rows" identifier = (field_expression "image_00->rows" identifier -> field_identifier)) ;) (if_statement "if (0 < (int)sVar26) {\n    do {\n      sVar17 = image_00->columns;\n      uVar41 = local_474 + 4;\n      uVar19 = 0;\n      if (0 < (int)sVar17) {\n        do {\n          uVar1 = uVar19 + 4;\n          columns = sVar17 - uVar19;\n          if (uVar1 < sVar17) {\n            columns = 4;\n          }\n          sVar17 = sVar26 - local_474;\n          if (uVar41 < sVar26) {\n            sVar17 = 4;\n          }\n          local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression);\n          if (local_4a8 == (Quantum *)0x0) {\n            sVar26 = image_00->rows;\n            break;\n          }\n          iVar18 = 0;\n          do {\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 0x10);\n          if ((int)sVar17 < 1) {\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }\n          sVar17 = image_00->columns;\n          sVar26 = image_00->rows;\n          uVar19 = uVar1;\n        } while ((int)uVar1 < (int)sVar17);\n      }\n      local_474 = uVar41;\n    } while ((int)uVar41 < (int)sVar26);\n  }" if (parenthesized_expression "(0 < (int)sVar26)" ( (binary_expression "0 < (int)sVar26" number_literal < (cast_expression "(int)sVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    do {\n      sVar17 = image_00->columns;\n      uVar41 = local_474 + 4;\n      uVar19 = 0;\n      if (0 < (int)sVar17) {\n        do {\n          uVar1 = uVar19 + 4;\n          columns = sVar17 - uVar19;\n          if (uVar1 < sVar17) {\n            columns = 4;\n          }\n          sVar17 = sVar26 - local_474;\n          if (uVar41 < sVar26) {\n            sVar17 = 4;\n          }\n          local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression);\n          if (local_4a8 == (Quantum *)0x0) {\n            sVar26 = image_00->rows;\n            break;\n          }\n          iVar18 = 0;\n          do {\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 0x10);\n          if ((int)sVar17 < 1) {\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }\n          sVar17 = image_00->columns;\n          sVar26 = image_00->rows;\n          uVar19 = uVar1;\n        } while ((int)uVar1 < (int)sVar17);\n      }\n      local_474 = uVar41;\n    } while ((int)uVar41 < (int)sVar26);\n  }" { (do_statement "do {\n      sVar17 = image_00->columns;\n      uVar41 = local_474 + 4;\n      uVar19 = 0;\n      if (0 < (int)sVar17) {\n        do {\n          uVar1 = uVar19 + 4;\n          columns = sVar17 - uVar19;\n          if (uVar1 < sVar17) {\n            columns = 4;\n          }\n          sVar17 = sVar26 - local_474;\n          if (uVar41 < sVar26) {\n            sVar17 = 4;\n          }\n          local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression);\n          if (local_4a8 == (Quantum *)0x0) {\n            sVar26 = image_00->rows;\n            break;\n          }\n          iVar18 = 0;\n          do {\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 0x10);\n          if ((int)sVar17 < 1) {\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }\n          sVar17 = image_00->columns;\n          sVar26 = image_00->rows;\n          uVar19 = uVar1;\n        } while ((int)uVar1 < (int)sVar17);\n      }\n      local_474 = uVar41;\n    } while ((int)uVar41 < (int)sVar26);" do (compound_statement "{\n      sVar17 = image_00->columns;\n      uVar41 = local_474 + 4;\n      uVar19 = 0;\n      if (0 < (int)sVar17) {\n        do {\n          uVar1 = uVar19 + 4;\n          columns = sVar17 - uVar19;\n          if (uVar1 < sVar17) {\n            columns = 4;\n          }\n          sVar17 = sVar26 - local_474;\n          if (uVar41 < sVar26) {\n            sVar17 = 4;\n          }\n          local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression);\n          if (local_4a8 == (Quantum *)0x0) {\n            sVar26 = image_00->rows;\n            break;\n          }\n          iVar18 = 0;\n          do {\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 0x10);\n          if ((int)sVar17 < 1) {\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }\n          sVar17 = image_00->columns;\n          sVar26 = image_00->rows;\n          uVar19 = uVar1;\n        } while ((int)uVar1 < (int)sVar17);\n      }\n      local_474 = uVar41;\n    }" { (expression_statement "sVar17 = image_00->columns;" (assignment_expression "sVar17 = image_00->columns" identifier = (field_expression "image_00->columns" identifier -> field_identifier)) ;) (expression_statement "uVar41 = local_474 + 4;" (assignment_expression "uVar41 = local_474 + 4" identifier = (binary_expression "local_474 + 4" identifier + number_literal)) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)sVar17) {\n        do {\n          uVar1 = uVar19 + 4;\n          columns = sVar17 - uVar19;\n          if (uVar1 < sVar17) {\n            columns = 4;\n          }\n          sVar17 = sVar26 - local_474;\n          if (uVar41 < sVar26) {\n            sVar17 = 4;\n          }\n          local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression);\n          if (local_4a8 == (Quantum *)0x0) {\n            sVar26 = image_00->rows;\n            break;\n          }\n          iVar18 = 0;\n          do {\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 0x10);\n          if ((int)sVar17 < 1) {\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }\n          sVar17 = image_00->columns;\n          sVar26 = image_00->rows;\n          uVar19 = uVar1;\n        } while ((int)uVar1 < (int)sVar17);\n      }" if (parenthesized_expression "(0 < (int)sVar17)" ( (binary_expression "0 < (int)sVar17" number_literal < (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          uVar1 = uVar19 + 4;\n          columns = sVar17 - uVar19;\n          if (uVar1 < sVar17) {\n            columns = 4;\n          }\n          sVar17 = sVar26 - local_474;\n          if (uVar41 < sVar26) {\n            sVar17 = 4;\n          }\n          local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression);\n          if (local_4a8 == (Quantum *)0x0) {\n            sVar26 = image_00->rows;\n            break;\n          }\n          iVar18 = 0;\n          do {\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 0x10);\n          if ((int)sVar17 < 1) {\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }\n          sVar17 = image_00->columns;\n          sVar26 = image_00->rows;\n          uVar19 = uVar1;\n        } while ((int)uVar1 < (int)sVar17);\n      }" { (do_statement "do {\n          uVar1 = uVar19 + 4;\n          columns = sVar17 - uVar19;\n          if (uVar1 < sVar17) {\n            columns = 4;\n          }\n          sVar17 = sVar26 - local_474;\n          if (uVar41 < sVar26) {\n            sVar17 = 4;\n          }\n          local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression);\n          if (local_4a8 == (Quantum *)0x0) {\n            sVar26 = image_00->rows;\n            break;\n          }\n          iVar18 = 0;\n          do {\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 0x10);\n          if ((int)sVar17 < 1) {\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }\n          sVar17 = image_00->columns;\n          sVar26 = image_00->rows;\n          uVar19 = uVar1;\n        } while ((int)uVar1 < (int)sVar17);" do (compound_statement "{\n          uVar1 = uVar19 + 4;\n          columns = sVar17 - uVar19;\n          if (uVar1 < sVar17) {\n            columns = 4;\n          }\n          sVar17 = sVar26 - local_474;\n          if (uVar41 < sVar26) {\n            sVar17 = 4;\n          }\n          local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression);\n          if (local_4a8 == (Quantum *)0x0) {\n            sVar26 = image_00->rows;\n            break;\n          }\n          iVar18 = 0;\n          do {\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 0x10);\n          if ((int)sVar17 < 1) {\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }\n          sVar17 = image_00->columns;\n          sVar26 = image_00->rows;\n          uVar19 = uVar1;\n        }" { (expression_statement "uVar1 = uVar19 + 4;" (assignment_expression "uVar1 = uVar19 + 4" identifier = (binary_expression "uVar19 + 4" identifier + number_literal)) ;) (expression_statement "columns = sVar17 - uVar19;" (assignment_expression "columns = sVar17 - uVar19" identifier = (binary_expression "sVar17 - uVar19" identifier - identifier)) ;) (if_statement "if (uVar1 < sVar17) {\n            columns = 4;\n          }" if (parenthesized_expression "(uVar1 < sVar17)" ( (binary_expression "uVar1 < sVar17" identifier < identifier) )) (compound_statement "{\n            columns = 4;\n          }" { (expression_statement "columns = 4;" (assignment_expression "columns = 4" identifier = number_literal) ;) })) (expression_statement "sVar17 = sVar26 - local_474;" (assignment_expression "sVar17 = sVar26 - local_474" identifier = (binary_expression "sVar26 - local_474" identifier - identifier)) ;) (if_statement "if (uVar41 < sVar26) {\n            sVar17 = 4;\n          }" if (parenthesized_expression "(uVar41 < sVar26)" ( (binary_expression "uVar41 < sVar26" identifier < identifier) )) (compound_statement "{\n            sVar17 = 4;\n          }" { (expression_statement "sVar17 = 4;" (assignment_expression "sVar17 = 4" identifier = number_literal) ;) })) (expression_statement "local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression);" (assignment_expression "local_4a8 = GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression)" identifier = (call_expression "GetVirtualPixels(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression)" identifier (argument_list "(image_00,uVar19,local_474,columns,sVar17,\n                                       (ExceptionInfo *)compression)" ( identifier , identifier , identifier , identifier , identifier , (cast_expression "(ExceptionInfo *)compression" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (local_4a8 == (Quantum *)0x0) {\n            sVar26 = image_00->rows;\n            break;\n          }" if (parenthesized_expression "(local_4a8 == (Quantum *)0x0)" ( (binary_expression "local_4a8 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            sVar26 = image_00->rows;\n            break;\n          }" { (expression_statement "sVar26 = image_00->rows;" (assignment_expression "sVar26 = image_00->rows" identifier = (field_expression "image_00->rows" identifier -> field_identifier)) ;) (break_statement "break;" break ;) })) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 0x10);" do (compound_statement "{\n            map[iVar18] = -1;\n            alphas[iVar18] = -1;\n            iVar18 = iVar18 + 1;\n          }" { (expression_statement "map[iVar18] = -1;" (assignment_expression "map[iVar18] = -1" (subscript_expression "map[iVar18]" identifier [ identifier ]) = number_literal) ;) (expression_statement "alphas[iVar18] = -1;" (assignment_expression "alphas[iVar18] = -1" (subscript_expression "alphas[iVar18]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0x10)" ( (binary_expression "iVar18 != 0x10" identifier != number_literal) )) ;) (if_statement "if ((int)sVar17 < 1) {\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }" if (parenthesized_expression "((int)sVar17 < 1)" ( (binary_expression "(int)sVar17 < 1" (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\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            fVar3 = 1.0;\n            iVar18 = 8;\n            pDVar39 = (DDSVector4 *)0x3f800000;\n            fVar5 = 1.0;\n            do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);\n            bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\nLAB_001edb47:\n            start_00.y = start.y;\n            start_00.x = start.x;\n            start_00.z = start.z;\n            end_00.y = end.y;\n            end_00.x = end.x;\n            end_00.z = end.z;\n            WriteIndices(image_00,start_00,end_00,indices);\n          }" { (if_statement "if (iVar29 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }" if (parenthesized_expression "(iVar29 == 0x35545844)" ( (binary_expression "iVar29 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }" { (expression_statement "local_4d4 = 0.0;" (assignment_expression "local_4d4 = 0.0" identifier = number_literal) ;) (expression_statement "local_4b0 = 0xff;" (assignment_expression "local_4b0 = 0xff" identifier = number_literal) ;) (expression_statement "local_4b8 = 0.0;" (assignment_expression "local_4b8 = 0.0" identifier = number_literal) ;) (expression_statement "local_4a0 = 5;" (assignment_expression "local_4a0 = 5" identifier = number_literal) ;) (expression_statement "local_4ac = 0.0;" (assignment_expression "local_4ac = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_001ee710;" goto statement_identifier ;) })) (expression_statement "local_4d4 = 0.0;" (assignment_expression "local_4d4 = 0.0" identifier = number_literal) ;) (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" identifier = number_literal) ;) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" identifier = number_literal) ;) (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) (expression_statement "fVar3 = local_4c0;" (assignment_expression "fVar3 = local_4c0" identifier = identifier) ;) (labeled_statement "LAB_001ed457:\n            local_4c0 = fVar3;" statement_identifier : (expression_statement "local_4c0 = fVar3;" (assignment_expression "local_4c0 = fVar3" identifier = identifier) ;)) (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 "fVar3 = 1.0;" (assignment_expression "fVar3 = 1.0" identifier = number_literal) ;) (expression_statement "iVar18 = 8;" (assignment_expression "iVar18 = 8" identifier = number_literal) ;) (expression_statement "pDVar39 = (DDSVector4 *)0x3f800000;" (assignment_expression "pDVar39 = (DDSVector4 *)0x3f800000" identifier = (cast_expression "(DDSVector4 *)0x3f800000" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "fVar5 = 1.0;" (assignment_expression "fVar5 = 1.0" identifier = number_literal) ;) (do_statement "do {\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            } while (iVar18 != 0);" do (compound_statement "{\n              fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;\n              fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;\n              fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;\n              fVar3 = fVar30;\n              if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }\n              fVar5 = fVar9;\n              if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }\n              if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar18 = iVar18 + -1;\n              fVar5 = fVar9 * fVar3;\n              pDVar39 = (DDSVector4 *)(fVar4 * fVar3);\n              fVar3 = fVar3 * fVar30;\n            }" { (expression_statement "fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5;" (assignment_expression "fVar9 = local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5" identifier = (binary_expression "local_4dc * fVar3 + fVar2 * (float)pDVar39 + local_4cc * fVar5" (binary_expression "local_4dc * fVar3 + fVar2 * (float)pDVar39" (binary_expression "local_4dc * fVar3" identifier * identifier) + (binary_expression "fVar2 * (float)pDVar39" identifier * (cast_expression "(float)pDVar39" ( (type_descriptor "float" primitive_type) ) identifier))) + (binary_expression "local_4cc * fVar5" identifier * identifier))) ;) (expression_statement "fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5;" (assignment_expression "fVar4 = local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5" identifier = (binary_expression "local_4e0 * fVar3 + local_4c0 * (float)pDVar39 + fVar2 * fVar5" (binary_expression "local_4e0 * fVar3 + local_4c0 * (float)pDVar39" (binary_expression "local_4e0 * fVar3" identifier * identifier) + (binary_expression "local_4c0 * (float)pDVar39" identifier * (cast_expression "(float)pDVar39" ( (type_descriptor "float" primitive_type) ) identifier))) + (binary_expression "fVar2 * fVar5" identifier * identifier))) ;) (expression_statement "fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc;" (assignment_expression "fVar30 = fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc" identifier = (binary_expression "fVar3 * local_4d0 + (float)pDVar39 * local_4e0 + fVar5 * local_4dc" (binary_expression "fVar3 * local_4d0 + (float)pDVar39 * local_4e0" (binary_expression "fVar3 * local_4d0" identifier * identifier) + (binary_expression "(float)pDVar39 * local_4e0" (cast_expression "(float)pDVar39" ( (type_descriptor "float" primitive_type) ) identifier) * identifier)) + (binary_expression "fVar5 * local_4dc" identifier * identifier))) ;) (expression_statement "fVar3 = fVar30;" (assignment_expression "fVar3 = fVar30" identifier = identifier) ;) (if_statement "if (fVar30 <= fVar4 || fVar4 != fVar30) {\n                fVar3 = fVar4;\n              }" if (parenthesized_expression "(fVar30 <= fVar4 || fVar4 != fVar30)" ( (binary_expression "fVar30 <= fVar4 || fVar4 != fVar30" (binary_expression "fVar30 <= fVar4" identifier <= identifier) || (binary_expression "fVar4 != fVar30" identifier != identifier)) )) (compound_statement "{\n                fVar3 = fVar4;\n              }" { (expression_statement "fVar3 = fVar4;" (assignment_expression "fVar3 = fVar4" identifier = identifier) ;) })) (expression_statement "fVar5 = fVar9;" (assignment_expression "fVar5 = fVar9" identifier = identifier) ;) (if_statement "if (fVar9 <= fVar3) {\n                fVar5 = fVar3;\n              }" if (parenthesized_expression "(fVar9 <= fVar3)" ( (binary_expression "fVar9 <= fVar3" identifier <= identifier) )) (compound_statement "{\n                fVar5 = fVar3;\n              }" { (expression_statement "fVar5 = fVar3;" (assignment_expression "fVar5 = fVar3" identifier = identifier) ;) })) (if_statement "if (fVar5 < 0.0) {\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }\n              else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }" if (parenthesized_expression "(fVar5 < 0.0)" ( (binary_expression "fVar5 < 0.0" identifier < number_literal) )) (compound_statement "{\n                fVar10 = -fVar5;\n                fVar3 = -1.0;\n              }" { (expression_statement "fVar10 = -fVar5;" (assignment_expression "fVar10 = -fVar5" identifier = (unary_expression "-fVar5" - identifier)) ;) (expression_statement "fVar3 = -1.0;" (assignment_expression "fVar3 = -1.0" identifier = number_literal) ;) }) (else_clause "else {\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }" else (compound_statement "{\n                fVar3 = 1.0;\n                fVar10 = fVar5;\n              }" { (expression_statement "fVar3 = 1.0;" (assignment_expression "fVar3 = 1.0" identifier = number_literal) ;) (expression_statement "fVar10 = fVar5;" (assignment_expression "fVar10 = fVar5" identifier = identifier) ;) }))) (if_statement "if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10) {\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }\n              else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }" if (parenthesized_expression "((float)*(double *)(unaff_EDI + 0xb2291) <= fVar10)" ( (binary_expression "(float)*(double *)(unaff_EDI + 0xb2291) <= fVar10" (cast_expression "(float)*(double *)(unaff_EDI + 0xb2291)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(unaff_EDI + 0xb2291)" * (cast_expression "(double *)(unaff_EDI + 0xb2291)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb2291)" ( (binary_expression "unaff_EDI + 0xb2291" identifier + number_literal) ))))) <= identifier) )) (compound_statement "{\n                fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;\n              }" { (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5;" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb2871) / fVar5" identifier = (binary_expression "*(float *)(unaff_EDI + 0xb2871) / fVar5" (pointer_expression "*(float *)(unaff_EDI + 0xb2871)" * (cast_expression "(float *)(unaff_EDI + 0xb2871)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb2871)" ( (binary_expression "unaff_EDI + 0xb2871" identifier + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }" else (compound_statement "{\n                fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }" { (expression_statement "fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291);" (assignment_expression "fVar3 = fVar3 / (float)*(double *)(unaff_EDI + 0xb2291)" identifier = (binary_expression "fVar3 / (float)*(double *)(unaff_EDI + 0xb2291)" identifier / (cast_expression "(float)*(double *)(unaff_EDI + 0xb2291)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(unaff_EDI + 0xb2291)" * (cast_expression "(double *)(unaff_EDI + 0xb2291)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb2291)" ( (binary_expression "unaff_EDI + 0xb2291" identifier + number_literal) ))))))) ;) }))) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) (expression_statement "fVar5 = fVar9 * fVar3;" (assignment_expression "fVar5 = fVar9 * fVar3" identifier = (binary_expression "fVar9 * fVar3" identifier * identifier)) ;) (expression_statement "pDVar39 = (DDSVector4 *)(fVar4 * fVar3);" (assignment_expression "pDVar39 = (DDSVector4 *)(fVar4 * fVar3)" identifier = (cast_expression "(DDSVector4 *)(fVar4 * fVar3)" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(fVar4 * fVar3)" ( (binary_expression "fVar4 * fVar3" identifier * identifier) )))) ;) (expression_statement "fVar3 = fVar3 * fVar30;" (assignment_expression "fVar3 = fVar3 * fVar30" identifier = (binary_expression "fVar3 * fVar30" identifier * identifier)) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;" (assignment_expression "bVar28 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0" identifier = (binary_expression "(extraout_CL ^ 1) & 1 | local_4d4 == 0.0" (binary_expression "(extraout_CL ^ 1) & 1" (parenthesized_expression "(extraout_CL ^ 1)" ( (binary_expression "extraout_CL ^ 1" identifier ^ number_literal) )) & number_literal) | (binary_expression "local_4d4 == 0.0" identifier == number_literal))) ;) (if_statement "if (bVar28 == 0) {\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }" if (parenthesized_expression "(bVar28 == 0)" ( (binary_expression "bVar28 == 0" identifier == number_literal) )) (compound_statement "{\n              onethird_onethird2.w = 0.11111111;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              half.x = *(float *)(unaff_EDI + 0xb227d);\n              two.x = *(float *)(unaff_EDI + 0xbdd29);\n              onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);\n              twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);\n              twonineths.x = *(float *)(unaff_EDI + 0xec3bd);\n              twothirds_twothirds2.w = 0.44444445;\n              grid.x = *(float *)(unaff_EDI + 0xd9031);\n              grid.w = 0.0;\n              gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);\n              gridrcp.w = 0.0;\n              xSumwSum.x = 0.0;\n              xSumwSum.y = 0.0;\n              xSumwSum.z = 0.0;\n              xSumwSum.w = 0.0;\n              grid.y = 63.0;\n              gridrcp.y = 0.015873017;\n              axis_00.y = (float)pointsWeights;\n              axis_00.x = fVar3;\n              axis_00.z = (float)&xSumwSum;\n              grid.z = grid.x;\n              gridrcp.z = gridrcp.x;\n              half.y = half.x;\n              half.z = half.x;\n              half.w = half.x;\n              onethird_onethird2.y = onethird_onethird2.x;\n              onethird_onethird2.z = onethird_onethird2.x;\n              two.y = two.x;\n              two.z = two.x;\n              two.w = two.x;\n              twonineths.y = twonineths.x;\n              twonineths.z = twonineths.x;\n              twonineths.w = twonineths.x;\n              twothirds_twothirds2.y = twothirds_twothirds2.x;\n              twothirds_twothirds2.z = twothirds_twothirds2.x;\n              ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              pDVar42 = (DDSVector4 *)0x0;\n              pDVar39 = (DDSVector4 *)0x0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);\n              pDVar39 = (DDSVector4 *)order + (int)pDVar39;\n              if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }\n              if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }\n              if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }\n              if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }\n              iVar18 = 0;\n              do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }" { (expression_statement "onethird_onethird2.w = 0.11111111;" (assignment_expression "onethird_onethird2.w = 0.11111111" (field_expression "onethird_onethird2.w" identifier . field_identifier) = number_literal) ;) (expression_statement "local_41c = 0x3f800000;" (assignment_expression "local_41c = 0x3f800000" identifier = number_literal) ;) (expression_statement "local_418 = 0x3f800000;" (assignment_expression "local_418 = 0x3f800000" identifier = number_literal) ;) (expression_statement "local_414 = 0x3f800000;" (assignment_expression "local_414 = 0x3f800000" identifier = number_literal) ;) (expression_statement "local_410 = 0x3f800000;" (assignment_expression "local_410 = 0x3f800000" identifier = number_literal) ;) (expression_statement "half.x = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "half.x = *(float *)(unaff_EDI + 0xb227d)" (field_expression "half.x" identifier . field_identifier) = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (expression_statement "two.x = *(float *)(unaff_EDI + 0xbdd29);" (assignment_expression "two.x = *(float *)(unaff_EDI + 0xbdd29)" (field_expression "two.x" identifier . field_identifier) = (pointer_expression "*(float *)(unaff_EDI + 0xbdd29)" * (cast_expression "(float *)(unaff_EDI + 0xbdd29)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbdd29)" ( (binary_expression "unaff_EDI + 0xbdd29" identifier + number_literal) ))))) ;) (expression_statement "onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9);" (assignment_expression "onethird_onethird2.x = *(float *)(unaff_EDI + 0xec3b9)" (field_expression "onethird_onethird2.x" identifier . field_identifier) = (pointer_expression "*(float *)(unaff_EDI + 0xec3b9)" * (cast_expression "(float *)(unaff_EDI + 0xec3b9)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b9)" ( (binary_expression "unaff_EDI + 0xec3b9" identifier + number_literal) ))))) ;) (expression_statement "twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5);" (assignment_expression "twothirds_twothirds2.x = *(float *)(unaff_EDI + 0xec3b5)" (field_expression "twothirds_twothirds2.x" identifier . field_identifier) = (pointer_expression "*(float *)(unaff_EDI + 0xec3b5)" * (cast_expression "(float *)(unaff_EDI + 0xec3b5)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b5)" ( (binary_expression "unaff_EDI + 0xec3b5" identifier + number_literal) ))))) ;) (expression_statement "twonineths.x = *(float *)(unaff_EDI + 0xec3bd);" (assignment_expression "twonineths.x = *(float *)(unaff_EDI + 0xec3bd)" (field_expression "twonineths.x" identifier . field_identifier) = (pointer_expression "*(float *)(unaff_EDI + 0xec3bd)" * (cast_expression "(float *)(unaff_EDI + 0xec3bd)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3bd)" ( (binary_expression "unaff_EDI + 0xec3bd" identifier + number_literal) ))))) ;) (expression_statement "twothirds_twothirds2.w = 0.44444445;" (assignment_expression "twothirds_twothirds2.w = 0.44444445" (field_expression "twothirds_twothirds2.w" identifier . field_identifier) = number_literal) ;) (expression_statement "grid.x = *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "grid.x = *(float *)(unaff_EDI + 0xd9031)" (field_expression "grid.x" identifier . field_identifier) = (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" 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 "gridrcp.x = *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "gridrcp.x = *(float *)(unaff_EDI + 0xec3ad)" (field_expression "gridrcp.x" identifier . field_identifier) = (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) ))))) ;) (expression_statement "gridrcp.w = 0.0;" (assignment_expression "gridrcp.w = 0.0" (field_expression "gridrcp.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 "grid.y = 63.0;" (assignment_expression "grid.y = 63.0" (field_expression "grid.y" identifier . field_identifier) = number_literal) ;) (expression_statement "gridrcp.y = 0.015873017;" (assignment_expression "gridrcp.y = 0.015873017" (field_expression "gridrcp.y" identifier . field_identifier) = number_literal) ;) (expression_statement "axis_00.y = (float)pointsWeights;" (assignment_expression "axis_00.y = (float)pointsWeights" (field_expression "axis_00.y" identifier . field_identifier) = (cast_expression "(float)pointsWeights" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "axis_00.x = fVar3;" (assignment_expression "axis_00.x = fVar3" (field_expression "axis_00.x" identifier . field_identifier) = 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 "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 "gridrcp.z = gridrcp.x;" (assignment_expression "gridrcp.z = gridrcp.x" (field_expression "gridrcp.z" identifier . field_identifier) = (field_expression "gridrcp.x" identifier . field_identifier)) ;) (expression_statement "half.y = half.x;" (assignment_expression "half.y = half.x" (field_expression "half.y" identifier . field_identifier) = (field_expression "half.x" identifier . field_identifier)) ;) (expression_statement "half.z = half.x;" (assignment_expression "half.z = half.x" (field_expression "half.z" identifier . field_identifier) = (field_expression "half.x" identifier . field_identifier)) ;) (expression_statement "half.w = half.x;" (assignment_expression "half.w = half.x" (field_expression "half.w" identifier . field_identifier) = (field_expression "half.x" identifier . field_identifier)) ;) (expression_statement "onethird_onethird2.y = onethird_onethird2.x;" (assignment_expression "onethird_onethird2.y = onethird_onethird2.x" (field_expression "onethird_onethird2.y" identifier . field_identifier) = (field_expression "onethird_onethird2.x" identifier . field_identifier)) ;) (expression_statement "onethird_onethird2.z = onethird_onethird2.x;" (assignment_expression "onethird_onethird2.z = onethird_onethird2.x" (field_expression "onethird_onethird2.z" identifier . field_identifier) = (field_expression "onethird_onethird2.x" identifier . field_identifier)) ;) (expression_statement "two.y = two.x;" (assignment_expression "two.y = two.x" (field_expression "two.y" identifier . field_identifier) = (field_expression "two.x" identifier . field_identifier)) ;) (expression_statement "two.z = two.x;" (assignment_expression "two.z = two.x" (field_expression "two.z" identifier . field_identifier) = (field_expression "two.x" identifier . field_identifier)) ;) (expression_statement "two.w = two.x;" (assignment_expression "two.w = two.x" (field_expression "two.w" identifier . field_identifier) = (field_expression "two.x" identifier . field_identifier)) ;) (expression_statement "twonineths.y = twonineths.x;" (assignment_expression "twonineths.y = twonineths.x" (field_expression "twonineths.y" identifier . field_identifier) = (field_expression "twonineths.x" identifier . field_identifier)) ;) (expression_statement "twonineths.z = twonineths.x;" (assignment_expression "twonineths.z = twonineths.x" (field_expression "twonineths.z" identifier . field_identifier) = (field_expression "twonineths.x" identifier . field_identifier)) ;) (expression_statement "twonineths.w = twonineths.x;" (assignment_expression "twonineths.w = twonineths.x" (field_expression "twonineths.w" identifier . field_identifier) = (field_expression "twonineths.x" identifier . field_identifier)) ;) (expression_statement "twothirds_twothirds2.y = twothirds_twothirds2.x;" (assignment_expression "twothirds_twothirds2.y = twothirds_twothirds2.x" (field_expression "twothirds_twothirds2.y" identifier . field_identifier) = (field_expression "twothirds_twothirds2.x" identifier . field_identifier)) ;) (expression_statement "twothirds_twothirds2.z = twothirds_twothirds2.x;" (assignment_expression "twothirds_twothirds2.z = twothirds_twothirds2.x" (field_expression "twothirds_twothirds2.z" identifier . field_identifier) = (field_expression "twothirds_twothirds2.x" identifier . field_identifier)) ;) (expression_statement "ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14);" (call_expression "ConstructOrdering((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14)" identifier (argument_list "((size_t)fVar5,pDVar39,axis_00,(DDSVector4 *)order,(DDSVector4 *)0x0,\n                                in_stack_fffffb10,in_stack_fffffb14)" ( (cast_expression "(size_t)fVar5" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier , identifier , (cast_expression "(DDSVector4 *)order" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(DDSVector4 *)0x0" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier ))) ;) (expression_statement "local_4c0 = *(float *)(unaff_EDI + 0xec3a1);" (assignment_expression "local_4c0 = *(float *)(unaff_EDI + 0xec3a1)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec3a1)" * (cast_expression "(float *)(unaff_EDI + 0xec3a1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3a1)" ( (binary_expression "unaff_EDI + 0xec3a1" identifier + number_literal) ))))) ;) (expression_statement "pDVar42 = (DDSVector4 *)0x0;" (assignment_expression "pDVar42 = (DDSVector4 *)0x0" identifier = (cast_expression "(DDSVector4 *)0x0" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pDVar39 = (DDSVector4 *)0x0;" (assignment_expression "pDVar39 = (DDSVector4 *)0x0" identifier = (cast_expression "(DDSVector4 *)0x0" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" identifier = number_literal) ;) (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" identifier = number_literal) ;) (do_statement "do {\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              } while (MVar21 != MagickFalse);" do (compound_statement "{\n                MVar45 = GetMagickResourceLimit(ThreadResource);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                ___cwtmp = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &start;\n                local_380 = &end;\n                local_37c = &grid;\n                local_378 = &gridrcp;\n                local_374 = &half;\n                local_370 = &onethird_onethird2;\n                local_36c = pointsWeights;\n                local_368 = &two;\n                local_364 = &twonineths;\n                local_360 = &twothirds_twothirds2;\n                local_35c = &xSumwSum;\n                local_354 = pDVar39;\n                local_344 = pDVar42;\n                GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);\n                iVar16 = local_348;\n                iVar33 = local_34c;\n                iVar18 = local_350;\n                pDVar39 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (pDVar42 != local_354) break;\n                pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }\n                axis_01.y = (float)pointsWeights;\n                axis_01.x = end.z - start.z;\n                axis_01.z = (float)&xSumwSum;\n                MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);\n              }" { (expression_statement "MVar45 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar45 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "local_350 = (int)local_4dc;" (assignment_expression "local_350 = (int)local_4dc" identifier = (cast_expression "(int)local_4dc" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_358 = local_4c0;" (assignment_expression "local_358 = local_4c0" identifier = identifier) ;) (expression_statement "local_34c = (int)local_4d0;" (assignment_expression "local_34c = (int)local_4d0" identifier = (cast_expression "(int)local_4d0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_348 = (int)local_4cc;" (assignment_expression "local_348 = (int)local_4cc" identifier = (cast_expression "(int)local_4cc" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "___cwtmp = local_4d4;" (assignment_expression "___cwtmp = local_4d4" identifier = identifier) ;) (expression_statement "local_388 = &local_41c;" (assignment_expression "local_388 = &local_41c" identifier = (pointer_expression "&local_41c" & identifier)) ;) (expression_statement "local_384 = &start;" (assignment_expression "local_384 = &start" identifier = (pointer_expression "&start" & identifier)) ;) (expression_statement "local_380 = &end;" (assignment_expression "local_380 = &end" identifier = (pointer_expression "&end" & identifier)) ;) (expression_statement "local_37c = &grid;" (assignment_expression "local_37c = &grid" identifier = (pointer_expression "&grid" & identifier)) ;) (expression_statement "local_378 = &gridrcp;" (assignment_expression "local_378 = &gridrcp" identifier = (pointer_expression "&gridrcp" & identifier)) ;) (expression_statement "local_374 = &half;" (assignment_expression "local_374 = &half" identifier = (pointer_expression "&half" & identifier)) ;) (expression_statement "local_370 = &onethird_onethird2;" (assignment_expression "local_370 = &onethird_onethird2" identifier = (pointer_expression "&onethird_onethird2" & identifier)) ;) (expression_statement "local_36c = pointsWeights;" (assignment_expression "local_36c = pointsWeights" identifier = identifier) ;) (expression_statement "local_368 = &two;" (assignment_expression "local_368 = &two" identifier = (pointer_expression "&two" & identifier)) ;) (expression_statement "local_364 = &twonineths;" (assignment_expression "local_364 = &twonineths" identifier = (pointer_expression "&twonineths" & identifier)) ;) (expression_statement "local_360 = &twothirds_twothirds2;" (assignment_expression "local_360 = &twothirds_twothirds2" identifier = (pointer_expression "&twothirds_twothirds2" & identifier)) ;) (expression_statement "local_35c = &xSumwSum;" (assignment_expression "local_35c = &xSumwSum" identifier = (pointer_expression "&xSumwSum" & identifier)) ;) (expression_statement "local_354 = pDVar39;" (assignment_expression "local_354 = pDVar39" identifier = identifier) ;) (expression_statement "local_344 = pDVar42;" (assignment_expression "local_344 = pDVar42" identifier = identifier) ;) (expression_statement "GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0);" (call_expression "GOMP_parallel(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0)" identifier (argument_list "(unaff_EDI + -0xd87,&__cwtmp,(int)MVar45,0)" ( (binary_expression "unaff_EDI + -0xd87" identifier + number_literal) , (pointer_expression "&__cwtmp" & identifier) , (cast_expression "(int)MVar45" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal ))) ;) (expression_statement "iVar16 = local_348;" (assignment_expression "iVar16 = local_348" identifier = identifier) ;) (expression_statement "iVar33 = local_34c;" (assignment_expression "iVar33 = local_34c" identifier = identifier) ;) (expression_statement "iVar18 = local_350;" (assignment_expression "iVar18 = local_350" identifier = identifier) ;) (expression_statement "pDVar39 = local_354;" (assignment_expression "pDVar39 = local_354" identifier = identifier) ;) (expression_statement "local_4c0 = (float)local_358;" (assignment_expression "local_4c0 = (float)local_358" identifier = (cast_expression "(float)local_358" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_4dc = (float)local_350;" (assignment_expression "local_4dc = (float)local_350" identifier = (cast_expression "(float)local_350" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_4d0 = (float)local_34c;" (assignment_expression "local_4d0 = (float)local_34c" identifier = (cast_expression "(float)local_34c" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_4cc = (float)local_348;" (assignment_expression "local_4cc = (float)local_348" identifier = (cast_expression "(float)local_348" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (pDVar42 != local_354) break;" if (parenthesized_expression "(pDVar42 != local_354)" ( (binary_expression "pDVar42 != local_354" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);" (assignment_expression "pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1)" identifier = (cast_expression "(DDSVector4 *)((int)&pDVar42->x + 1)" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar42->x + 1)" ( (binary_expression "(int)&pDVar42->x + 1" (cast_expression "(int)&pDVar42->x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar42->x" & (field_expression "pDVar42->x" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (pDVar42 == (DDSVector4 *)0x8) {\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }" if (parenthesized_expression "(pDVar42 == (DDSVector4 *)0x8)" ( (binary_expression "pDVar42 == (DDSVector4 *)0x8" identifier == (cast_expression "(DDSVector4 *)0x8" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  pDVar39 = (DDSVector4 *)0x7;\n                  break;\n                }" { (expression_statement "pDVar39 = (DDSVector4 *)0x7;" (assignment_expression "pDVar39 = (DDSVector4 *)0x7" identifier = (cast_expression "(DDSVector4 *)0x7" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;) })) (expression_statement "axis_01.y = (float)pointsWeights;" (assignment_expression "axis_01.y = (float)pointsWeights" (field_expression "axis_01.y" identifier . field_identifier) = (cast_expression "(float)pointsWeights" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "axis_01.x = end.z - start.z;" (assignment_expression "axis_01.x = end.z - start.z" (field_expression "axis_01.x" identifier . field_identifier) = (binary_expression "end.z - start.z" (field_expression "end.z" identifier . field_identifier) - (field_expression "start.z" identifier . field_identifier))) ;) (expression_statement "axis_01.z = (float)&xSumwSum;" (assignment_expression "axis_01.z = (float)&xSumwSum" (field_expression "axis_01.z" identifier . field_identifier) = (cast_expression "(float)&xSumwSum" ( (type_descriptor "float" primitive_type) ) (pointer_expression "&xSumwSum" & identifier))) ;) (expression_statement "MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14);" (assignment_expression "MVar21 = ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14)" identifier = (call_expression "ConstructOrdering((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14)" identifier (argument_list "((size_t)(end.x - start.x),(DDSVector4 *)(end.y - start.y)\n                                           ,axis_01,(DDSVector4 *)order,pDVar42,in_stack_fffffb10,\n                                           in_stack_fffffb14)" ( (cast_expression "(size_t)(end.x - start.x)" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(end.x - start.x)" ( (binary_expression "end.x - start.x" (field_expression "end.x" identifier . field_identifier) - (field_expression "start.x" identifier . field_identifier)) ))) , (cast_expression "(DDSVector4 *)(end.y - start.y)" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(end.y - start.y)" ( (binary_expression "end.y - start.y" (field_expression "end.y" identifier . field_identifier) - (field_expression "start.y" identifier . field_identifier)) ))) , identifier , (cast_expression "(DDSVector4 *)order" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier )))) ;) }) while (parenthesized_expression "(MVar21 != MagickFalse)" ( (binary_expression "MVar21 != MagickFalse" identifier != identifier) )) ;) (expression_statement "pDVar39 = (DDSVector4 *)order + (int)pDVar39;" (assignment_expression "pDVar39 = (DDSVector4 *)order + (int)pDVar39" identifier = (binary_expression "(DDSVector4 *)order + (int)pDVar39" (cast_expression "(DDSVector4 *)order" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + (cast_expression "(int)pDVar39" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (0 < iVar18) {\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }" if (parenthesized_expression "(0 < iVar18)" ( (binary_expression "0 < iVar18" number_literal < identifier) )) (compound_statement "{\n                pDVar42 = pDVar39;\n                do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);\n              }" { (expression_statement "pDVar42 = pDVar39;" (assignment_expression "pDVar42 = pDVar39" identifier = identifier) ;) (do_statement "do {\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                } while ((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42);" do (compound_statement "{\n                  pfVar20 = &pDVar42->x;\n                  pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);\n                  unordered[*(byte *)pfVar20] = '\0';\n                }" { (expression_statement "pfVar20 = &pDVar42->x;" (assignment_expression "pfVar20 = &pDVar42->x" identifier = (pointer_expression "&pDVar42->x" & (field_expression "pDVar42->x" identifier -> field_identifier))) ;) (expression_statement "pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1);" (assignment_expression "pDVar42 = (DDSVector4 *)((int)&pDVar42->x + 1)" identifier = (cast_expression "(DDSVector4 *)((int)&pDVar42->x + 1)" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar42->x + 1)" ( (binary_expression "(int)&pDVar42->x + 1" (cast_expression "(int)&pDVar42->x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar42->x" & (field_expression "pDVar42->x" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "unordered[*(byte *)pfVar20] = '\0';" (assignment_expression "unordered[*(byte *)pfVar20] = '\0'" (subscript_expression "unordered[*(byte *)pfVar20]" identifier [ (pointer_expression "*(byte *)pfVar20" * (cast_expression "(byte *)pfVar20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) while (parenthesized_expression "((DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42)" ( (binary_expression "(DDSVector4 *)((int)&pDVar39->x + iVar18) != pDVar42" (cast_expression "(DDSVector4 *)((int)&pDVar39->x + iVar18)" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar39->x + iVar18)" ( (binary_expression "(int)&pDVar39->x + iVar18" (cast_expression "(int)&pDVar39->x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar39->x" & (field_expression "pDVar39->x" identifier -> field_identifier))) + identifier) ))) != identifier) )) ;) })) (if_statement "if (iVar18 < iVar33) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }" if (parenthesized_expression "(iVar18 < iVar33)" ( (binary_expression "iVar18 < iVar33" identifier < identifier) )) (compound_statement "{\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar18);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);\n              }" { (expression_statement "pbVar22 = (byte *)((int)&pDVar39->x + iVar18);" (assignment_expression "pbVar22 = (byte *)((int)&pDVar39->x + iVar18)" identifier = (cast_expression "(byte *)((int)&pDVar39->x + iVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar39->x + iVar18)" ( (binary_expression "(int)&pDVar39->x + iVar18" (cast_expression "(int)&pDVar39->x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar39->x" & (field_expression "pDVar39->x" identifier -> field_identifier))) + identifier) )))) ;) (do_statement "do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                } while ((byte *)((int)&pDVar39->x + iVar33) != pbVar22);" do (compound_statement "{\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x02';\n                }" { (expression_statement "bVar28 = *pbVar22;" (assignment_expression "bVar28 = *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 "unordered[bVar28] = '\x02';" (assignment_expression "unordered[bVar28] = '\x02'" (subscript_expression "unordered[bVar28]" identifier [ identifier ]) = (char_literal "'\x02'" ' escape_sequence ')) ;) }) while (parenthesized_expression "((byte *)((int)&pDVar39->x + iVar33) != pbVar22)" ( (binary_expression "(byte *)((int)&pDVar39->x + iVar33) != pbVar22" (cast_expression "(byte *)((int)&pDVar39->x + iVar33)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar39->x + iVar33)" ( (binary_expression "(int)&pDVar39->x + iVar33" (cast_expression "(int)&pDVar39->x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar39->x" & (field_expression "pDVar39->x" identifier -> field_identifier))) + identifier) ))) != identifier) )) ;) })) (if_statement "if (iVar33 < iVar16) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }" if (parenthesized_expression "(iVar33 < iVar16)" ( (binary_expression "iVar33 < iVar16" identifier < identifier) )) (compound_statement "{\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar33);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);\n              }" { (expression_statement "pbVar22 = (byte *)((int)&pDVar39->x + iVar33);" (assignment_expression "pbVar22 = (byte *)((int)&pDVar39->x + iVar33)" identifier = (cast_expression "(byte *)((int)&pDVar39->x + iVar33)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar39->x + iVar33)" ( (binary_expression "(int)&pDVar39->x + iVar33" (cast_expression "(int)&pDVar39->x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar39->x" & (field_expression "pDVar39->x" identifier -> field_identifier))) + identifier) )))) ;) (do_statement "do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                } while ((byte *)((int)&pDVar39->x + iVar16) != pbVar22);" do (compound_statement "{\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x03';\n                }" { (expression_statement "bVar28 = *pbVar22;" (assignment_expression "bVar28 = *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 "unordered[bVar28] = '\x03';" (assignment_expression "unordered[bVar28] = '\x03'" (subscript_expression "unordered[bVar28]" identifier [ identifier ]) = (char_literal "'\x03'" ' escape_sequence ')) ;) }) while (parenthesized_expression "((byte *)((int)&pDVar39->x + iVar16) != pbVar22)" ( (binary_expression "(byte *)((int)&pDVar39->x + iVar16) != pbVar22" (cast_expression "(byte *)((int)&pDVar39->x + iVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar39->x + iVar16)" ( (binary_expression "(int)&pDVar39->x + iVar16" (cast_expression "(int)&pDVar39->x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar39->x" & (field_expression "pDVar39->x" identifier -> field_identifier))) + identifier) ))) != identifier) )) ;) })) (if_statement "if (iVar16 < (int)local_4d4) {\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }" if (parenthesized_expression "(iVar16 < (int)local_4d4)" ( (binary_expression "iVar16 < (int)local_4d4" identifier < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pbVar22 = (byte *)((int)&pDVar39->x + iVar16);\n                do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);\n              }" { (expression_statement "pbVar22 = (byte *)((int)&pDVar39->x + iVar16);" (assignment_expression "pbVar22 = (byte *)((int)&pDVar39->x + iVar16)" identifier = (cast_expression "(byte *)((int)&pDVar39->x + iVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar39->x + iVar16)" ( (binary_expression "(int)&pDVar39->x + iVar16" (cast_expression "(int)&pDVar39->x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar39->x" & (field_expression "pDVar39->x" identifier -> field_identifier))) + identifier) )))) ;) (do_statement "do {\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                } while ((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22);" do (compound_statement "{\n                  bVar28 = *pbVar22;\n                  pbVar22 = pbVar22 + 1;\n                  unordered[bVar28] = '\x01';\n                }" { (expression_statement "bVar28 = *pbVar22;" (assignment_expression "bVar28 = *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 "unordered[bVar28] = '\x01';" (assignment_expression "unordered[bVar28] = '\x01'" (subscript_expression "unordered[bVar28]" identifier [ identifier ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) }) while (parenthesized_expression "((byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22)" ( (binary_expression "(byte *)((int)&pDVar39->x + (int)local_4d4) != pbVar22" (cast_expression "(byte *)((int)&pDVar39->x + (int)local_4d4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar39->x + (int)local_4d4)" ( (binary_expression "(int)&pDVar39->x + (int)local_4d4" (cast_expression "(int)&pDVar39->x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar39->x" & (field_expression "pDVar39->x" identifier -> field_identifier))) + (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) != identifier) )) ;) })) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);" do (compound_statement "{\n                while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }\n                indices[iVar18] = '\x03';\n                iVar18 = iVar18 + 1;\n              }" { (while_statement "while (map[iVar18] != -1) {\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }" while (parenthesized_expression "(map[iVar18] != -1)" ( (binary_expression "map[iVar18] != -1" (subscript_expression "map[iVar18]" identifier [ identifier ]) != number_literal) )) (compound_statement "{\n                  indices[iVar18] = unordered[map[iVar18]];\n                  iVar18 = iVar18 + 1;\n                  if (iVar18 == 0x10) goto LAB_001edb47;\n                }" { (expression_statement "indices[iVar18] = unordered[map[iVar18]];" (assignment_expression "indices[iVar18] = unordered[map[iVar18]]" (subscript_expression "indices[iVar18]" identifier [ identifier ]) = (subscript_expression "unordered[map[iVar18]]" identifier [ (subscript_expression "map[iVar18]" identifier [ identifier ]) ])) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (iVar18 == 0x10) goto LAB_001edb47;" if (parenthesized_expression "(iVar18 == 0x10)" ( (binary_expression "iVar18 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_001edb47;" goto statement_identifier ;)) })) (expression_statement "indices[iVar18] = '\x03';" (assignment_expression "indices[iVar18] = '\x03'" (subscript_expression "indices[iVar18]" identifier [ identifier ]) = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0x10)" ( (binary_expression "iVar18 != 0x10" identifier != number_literal) )) ;) }) (else_clause "else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }" else (compound_statement "{\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar14 = (undefined2)((uint)___cwtmp >> 0x10);\n              if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);\n              end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].x = start.x;\n              end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              pointsWeights[0].y = start.y;\n              end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);\n              pointsWeights[0].z = start.z;\n              pointsWeights[0].w = end.x;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              pointsWeights[1].x = end.y;\n              pointsWeights[1].y = end.z;\n              pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;\n              pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;\n              pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;\n              pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;\n              pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;\n              pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;\n              if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }\n              iVar18 = 0;\n              do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);\n            }" { (if_statement "if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }" if (parenthesized_expression "(local_4d4 == 0.0)" ( (binary_expression "local_4d4 == 0.0" identifier == number_literal) )) (compound_statement "{\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                start.z = 0.0;\n                start.y = 0.0;\nLAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + 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) ;) (labeled_statement "LAB_001ee1db:\n                fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);" statement_identifier : (expression_statement "fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d)" identifier = (binary_expression "start.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d)" (binary_expression "start.y * *(float *)(unaff_EDI + 0xdf975)" (field_expression "start.y" identifier . field_identifier) * (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" * (cast_expression "(float *)(unaff_EDI + 0xdf975)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf975)" ( (binary_expression "unaff_EDI + 0xdf975" identifier + number_literal) ))))) + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))))) ;)) (labeled_statement "LAB_001ee1e7:\n                if (start.z < 0.0) goto LAB_001ee13a;" statement_identifier : (if_statement "if (start.z < 0.0) goto LAB_001ee13a;" if (parenthesized_expression "(start.z < 0.0)" ( (binary_expression "start.z < 0.0" (field_expression "start.z" identifier . field_identifier) < number_literal) )) (goto_statement "goto LAB_001ee13a;" goto statement_identifier ;))) (labeled_statement "LAB_001ee1f9:\n                if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }" statement_identifier : (if_statement "if (1.0 < start.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }" if (parenthesized_expression "(1.0 < start.z)" ( (binary_expression "1.0 < start.z" number_literal < (field_expression "start.z" identifier . field_identifier)) )) (compound_statement "{\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }" { (expression_statement "fVar5 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar5 = *(float *)(unaff_EDI + 0xec399)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec399)" * (cast_expression "(float *)(unaff_EDI + 0xec399)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec399)" ( (binary_expression "unaff_EDI + 0xec399" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }" else (compound_statement "{\n                  fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);\n                }" { (expression_statement "fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar5 = *(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xb227d) +\n                          start.z * *(float *)(unaff_EDI + 0xd9031)" (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))) + (binary_expression "start.z * *(float *)(unaff_EDI + 0xd9031)" (field_expression "start.z" identifier . field_identifier) * (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))))) ;) })))) }) (else_clause "else {\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }" else (compound_statement "{\n                start.y = points[0].y;\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                local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;\n                local_4dc = points[0].x;\n                if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= start.z) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }" { (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.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 "local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x\n                ;" (assignment_expression "local_4d0 = fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x" identifier = (binary_expression "fVar3 * points[0].z + (float)pDVar39 * points[0].y + fVar5 * points[0].x" (binary_expression "fVar3 * points[0].z + (float)pDVar39 * points[0].y" (binary_expression "fVar3 * points[0].z" identifier * (field_expression "points[0].z" (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))) + (binary_expression "fVar5 * points[0].x" identifier * (field_expression "points[0].x" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)))) ;) (expression_statement "local_4dc = points[0].x;" (assignment_expression "local_4dc = points[0].x" identifier = (field_expression "points[0].x" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (1 < (int)local_4d4) {\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }" if (parenthesized_expression "(1 < (int)local_4d4)" ( (binary_expression "1 < (int)local_4d4" number_literal < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  local_4b4 = points[0].z;\n                  bVar36 = 0;\n                  bVar40 = 0;\n                  local_4ac = points[0].y;\n                  local_4b8 = points[0].x;\n                  pDVar42 = points;\n                  local_4cc = points[0].y;\n                  bVar15 = 0;\n                  local_4c0 = points[0].z;\n                  local_4e0 = local_4d0;\n                  bVar34 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }\n                  start.z = fVar3;\n                  start.y = fVar2;\n                  if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }\n                  if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }\n                  if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }\n                }" { (expression_statement "local_4b4 = points[0].z;" (assignment_expression "local_4b4 = points[0].z" identifier = (field_expression "points[0].z" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "bVar36 = 0;" (assignment_expression "bVar36 = 0" identifier = number_literal) ;) (expression_statement "bVar40 = 0;" (assignment_expression "bVar40 = 0" identifier = number_literal) ;) (expression_statement "local_4ac = points[0].y;" (assignment_expression "local_4ac = points[0].y" identifier = (field_expression "points[0].y" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "local_4b8 = points[0].x;" (assignment_expression "local_4b8 = points[0].x" identifier = (field_expression "points[0].x" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pDVar42 = points;" (assignment_expression "pDVar42 = points" identifier = identifier) ;) (expression_statement "local_4cc = points[0].y;" (assignment_expression "local_4cc = points[0].y" identifier = (field_expression "points[0].y" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "local_4c0 = points[0].z;" (assignment_expression "local_4c0 = points[0].z" identifier = (field_expression "points[0].z" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "local_4e0 = local_4d0;" (assignment_expression "local_4e0 = local_4d0" identifier = identifier) ;) (expression_statement "bVar34 = 0;" (assignment_expression "bVar34 = 0" identifier = number_literal) ;) (do_statement "do {\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  } while (pDVar42 != points + (int)local_4d4 + -1);" do (compound_statement "{\n                    while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }\n                    pDVar42 = pDVar42 + 1;\n                  }" { (while_statement "while( true ) {\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      fVar2 = pDVar42[1].x;\n                      fVar4 = pDVar42[1].y;\n                      fVar30 = pDVar42[1].z;\n                      fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;\n                      if (local_4e0 <= fVar9) break;\n                      pDVar42 = pDVar42 + 1;\n                      bVar34 = bVar28;\n                      local_4e0 = fVar9;\n                      local_4dc = fVar2;\n                      local_4cc = fVar4;\n                      local_4c0 = fVar30;\n                      if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;\n                    }" { (expression_statement "fVar2 = pDVar42[1].x;" (assignment_expression "fVar2 = pDVar42[1].x" identifier = (field_expression "pDVar42[1].x" (subscript_expression "pDVar42[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "fVar4 = pDVar42[1].y;" (assignment_expression "fVar4 = pDVar42[1].y" identifier = (field_expression "pDVar42[1].y" (subscript_expression "pDVar42[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "fVar30 = pDVar42[1].z;" (assignment_expression "fVar30 = pDVar42[1].z" identifier = (field_expression "pDVar42[1].z" (subscript_expression "pDVar42[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2;" (assignment_expression "fVar9 = fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2" identifier = (binary_expression "fVar3 * fVar30 + (float)pDVar39 * fVar4 + fVar5 * fVar2" (binary_expression "fVar3 * fVar30 + (float)pDVar39 * fVar4" (binary_expression "fVar3 * fVar30" identifier * identifier) + (binary_expression "(float)pDVar39 * fVar4" (cast_expression "(float)pDVar39" ( (type_descriptor "float" primitive_type) ) identifier) * identifier)) + (binary_expression "fVar5 * fVar2" identifier * identifier))) ;) (if_statement "if (local_4e0 <= fVar9) break;" if (parenthesized_expression "(local_4e0 <= fVar9)" ( (binary_expression "local_4e0 <= fVar9" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "pDVar42 = pDVar42 + 1;" (assignment_expression "pDVar42 = pDVar42 + 1" identifier = (binary_expression "pDVar42 + 1" identifier + number_literal)) ;) (expression_statement "bVar34 = bVar28;" (assignment_expression "bVar34 = bVar28" identifier = identifier) ;) (expression_statement "local_4e0 = fVar9;" (assignment_expression "local_4e0 = fVar9" identifier = identifier) ;) (expression_statement "local_4dc = fVar2;" (assignment_expression "local_4dc = fVar2" identifier = identifier) ;) (expression_statement "local_4cc = fVar4;" (assignment_expression "local_4cc = fVar4" identifier = identifier) ;) (expression_statement "local_4c0 = fVar30;" (assignment_expression "local_4c0 = fVar30" identifier = identifier) ;) (if_statement "if (pDVar42 == points + (int)local_4d4 + -1) goto LAB_001ee095;" if (parenthesized_expression "(pDVar42 == points + (int)local_4d4 + -1)" ( (binary_expression "pDVar42 == points + (int)local_4d4 + -1" identifier == (binary_expression "points + (int)local_4d4 + -1" (binary_expression "points + (int)local_4d4" identifier + (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal)) )) (goto_statement "goto LAB_001ee095;" goto statement_identifier ;)) })) (if_statement "if (local_4d0 < fVar9) {\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }" if (parenthesized_expression "(local_4d0 < fVar9)" ( (binary_expression "local_4d0 < fVar9" identifier < identifier) )) (compound_statement "{\n                      local_4d0 = fVar9;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar30;\n                      local_4ac = fVar4;\n                      bVar36 = bVar28;\n                      bVar40 = bVar28;\n                      bVar15 = bVar28;\n                    }" { (expression_statement "local_4d0 = fVar9;" (assignment_expression "local_4d0 = fVar9" identifier = identifier) ;) (expression_statement "local_4b8 = fVar2;" (assignment_expression "local_4b8 = fVar2" identifier = identifier) ;) (expression_statement "local_4b4 = fVar30;" (assignment_expression "local_4b4 = fVar30" identifier = identifier) ;) (expression_statement "local_4ac = fVar4;" (assignment_expression "local_4ac = fVar4" identifier = identifier) ;) (expression_statement "bVar36 = bVar28;" (assignment_expression "bVar36 = bVar28" identifier = identifier) ;) (expression_statement "bVar40 = bVar28;" (assignment_expression "bVar40 = bVar28" identifier = identifier) ;) (expression_statement "bVar15 = bVar28;" (assignment_expression "bVar15 = bVar28" identifier = identifier) ;) })) (expression_statement "pDVar42 = pDVar42 + 1;" (assignment_expression "pDVar42 = pDVar42 + 1" identifier = (binary_expression "pDVar42 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pDVar42 != points + (int)local_4d4 + -1)" ( (binary_expression "pDVar42 != points + (int)local_4d4 + -1" identifier != (binary_expression "points + (int)local_4d4 + -1" (binary_expression "points + (int)local_4d4" identifier + (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal)) )) ;) (labeled_statement "LAB_001ee095:\n                  fVar2 = local_4cc;" statement_identifier : (expression_statement "fVar2 = local_4cc;" (assignment_expression "fVar2 = local_4cc" identifier = identifier) ;)) (expression_statement "fVar3 = local_4c0;" (assignment_expression "fVar3 = local_4c0" identifier = identifier) ;) (if_statement "if (bVar34 == 0) {\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }" if (parenthesized_expression "(bVar34 == 0)" ( (binary_expression "bVar34 == 0" identifier == number_literal) )) (compound_statement "{\n                    local_4dc = points[0].x;\n                    fVar2 = start.y;\n                    fVar3 = start.z;\n                  }" { (expression_statement "local_4dc = points[0].x;" (assignment_expression "local_4dc = points[0].x" identifier = (field_expression "points[0].x" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "fVar2 = start.y;" (assignment_expression "fVar2 = start.y" identifier = (field_expression "start.y" identifier . field_identifier)) ;) (expression_statement "fVar3 = start.z;" (assignment_expression "fVar3 = start.z" identifier = (field_expression "start.z" identifier . field_identifier)) ;) })) (expression_statement "start.z = fVar3;" (assignment_expression "start.z = fVar3" (field_expression "start.z" identifier . field_identifier) = identifier) ;) (expression_statement "start.y = fVar2;" (assignment_expression "start.y = fVar2" (field_expression "start.y" identifier . field_identifier) = identifier) ;) (if_statement "if (bVar40 != 0) {\n                    end.x = local_4b8;\n                  }" if (parenthesized_expression "(bVar40 != 0)" ( (binary_expression "bVar40 != 0" identifier != number_literal) )) (compound_statement "{\n                    end.x = local_4b8;\n                  }" { (expression_statement "end.x = local_4b8;" (assignment_expression "end.x = local_4b8" (field_expression "end.x" identifier . field_identifier) = identifier) ;) })) (if_statement "if (bVar36 != 0) {\n                    end.y = local_4ac;\n                  }" if (parenthesized_expression "(bVar36 != 0)" ( (binary_expression "bVar36 != 0" identifier != number_literal) )) (compound_statement "{\n                    end.y = local_4ac;\n                  }" { (expression_statement "end.y = local_4ac;" (assignment_expression "end.y = local_4ac" (field_expression "end.y" identifier . field_identifier) = identifier) ;) })) (if_statement "if (bVar15 != 0) {\n                    end.z = local_4b4;\n                  }" if (parenthesized_expression "(bVar15 != 0)" ( (binary_expression "bVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                    end.z = local_4b4;\n                  }" { (expression_statement "end.z = local_4b4;" (assignment_expression "end.z = local_4b4" (field_expression "end.z" identifier . field_identifier) = identifier) ;) })) })) (if_statement "if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }" if (parenthesized_expression "(0.0 <= local_4dc)" ( (binary_expression "0.0 <= local_4dc" number_literal <= identifier) )) (compound_statement "{\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }" { (if_statement "if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }" if (parenthesized_expression "(local_4dc <= 1.0)" ( (binary_expression "local_4dc <= 1.0" identifier <= number_literal) )) (compound_statement "{\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031)" (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))) + (binary_expression "local_4dc * *(float *)(unaff_EDI + 0xd9031)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))))) ;) }) (else_clause "else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }" else (compound_statement "{\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec399)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec399)" * (cast_expression "(float *)(unaff_EDI + 0xec399)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec399)" ( (binary_expression "unaff_EDI + 0xec399" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }" else (compound_statement "{\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) }))) (if_statement "if (0.0 <= start.y) {\n                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\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                  if (start.y <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }" { (if_statement "if (start.y <= 1.0) goto LAB_001ee1db;" if (parenthesized_expression "(start.y <= 1.0)" ( (binary_expression "start.y <= 1.0" (field_expression "start.y" identifier . field_identifier) <= number_literal) )) (goto_statement "goto LAB_001ee1db;" goto statement_identifier ;)) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xec39d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xec39d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec39d)" * (cast_expression "(float *)(unaff_EDI + 0xec39d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec39d)" ( (binary_expression "unaff_EDI + 0xec39d" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001ee1e7;" goto statement_identifier ;) })) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= start.z) goto LAB_001ee1f9;" 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_001ee1f9;" goto statement_identifier ;)) (labeled_statement "LAB_001ee13a:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);" statement_identifier : (expression_statement "fVar5 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar5 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;)) }))) (expression_statement "start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "start.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" (field_expression "start.x" identifier . field_identifier) = (binary_expression "ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar2)" identifier (argument_list "(fVar2)" ( identifier ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) )))))) ;) (expression_statement "start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);" (assignment_expression "start.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" (field_expression "start.y" identifier . field_identifier) = (binary_expression "*(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" (pointer_expression "*(float *)(unaff_EDI + 0xec3b1)" * (cast_expression "(float *)(unaff_EDI + 0xec3b1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b1)" ( (binary_expression "unaff_EDI + 0xec3b1" identifier + number_literal) )))) * (call_expression "ROUND(fVar3)" identifier (argument_list "(fVar3)" ( identifier ))))) ;) (expression_statement "start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "start.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad)" (field_expression "start.z" identifier . field_identifier) = (binary_expression "ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar5)" identifier (argument_list "(fVar5)" ( identifier ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) )))))) ;) (if_statement "if (end.x < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }" if (parenthesized_expression "(end.x < 0.0)" ( (binary_expression "end.x < 0.0" (field_expression "end.x" identifier . field_identifier) < number_literal) )) (compound_statement "{\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);\n              }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001ee39c:\n                if (0.0 <= end.y) goto LAB_001ee3ad;" statement_identifier : (if_statement "if (0.0 <= end.y) goto LAB_001ee3ad;" 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_001ee3ad;" goto statement_identifier ;))) (labeled_statement "LAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);" statement_identifier : (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_001ee3c3:\n                if (0.0 <= end.z) goto LAB_001ee3d4;" statement_identifier : (if_statement "if (0.0 <= end.z) goto LAB_001ee3d4;" if (parenthesized_expression "(0.0 <= end.z)" ( (binary_expression "0.0 <= end.z" number_literal <= (field_expression "end.z" identifier . field_identifier)) )) (goto_statement "goto LAB_001ee3d4;" goto statement_identifier ;))) (labeled_statement "LAB_001ee7e9:\n                fVar5 = *(float *)(unaff_EDI + 0xb227d);" statement_identifier : (expression_statement "fVar5 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar5 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }" else (compound_statement "{\n                if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);\n                if (end.y < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);\n                if (end.z < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }\n              }" { (if_statement "if (1.0 < end.x) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }" if (parenthesized_expression "(1.0 < end.x)" ( (binary_expression "1.0 < end.x" number_literal < (field_expression "end.x" identifier . field_identifier)) )) (compound_statement "{\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec399)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec399)" * (cast_expression "(float *)(unaff_EDI + 0xec399)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec399)" ( (binary_expression "unaff_EDI + 0xec399" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001ee39c;" goto statement_identifier ;) })) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xb227d) + end.x * *(float *)(unaff_EDI + 0xd9031)" (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))) + (binary_expression "end.x * *(float *)(unaff_EDI + 0xd9031)" (field_expression "end.x" identifier . field_identifier) * (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))))) ;) (if_statement "if (end.y < 0.0) goto LAB_001ee81d;" 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_001ee81d;" goto statement_identifier ;)) (labeled_statement "LAB_001ee3ad:\n                if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }" statement_identifier : (if_statement "if (1.0 < end.y) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }" if (parenthesized_expression "(1.0 < end.y)" ( (binary_expression "1.0 < end.y" number_literal < (field_expression "end.y" identifier . field_identifier)) )) (compound_statement "{\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }" { (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xec39d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xec39d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec39d)" * (cast_expression "(float *)(unaff_EDI + 0xec39d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec39d)" ( (binary_expression "unaff_EDI + 0xec39d" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001ee3c3;" goto statement_identifier ;) }))) (expression_statement "fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d)" identifier = (binary_expression "end.y * *(float *)(unaff_EDI + 0xdf975) + *(float *)(unaff_EDI + 0xb227d)" (binary_expression "end.y * *(float *)(unaff_EDI + 0xdf975)" (field_expression "end.y" identifier . field_identifier) * (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" * (cast_expression "(float *)(unaff_EDI + 0xdf975)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf975)" ( (binary_expression "unaff_EDI + 0xdf975" identifier + number_literal) ))))) + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))))) ;) (if_statement "if (end.z < 0.0) goto LAB_001ee7e9;" 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_001ee7e9;" goto statement_identifier ;)) (labeled_statement "LAB_001ee3d4:\n                if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }" statement_identifier : (if_statement "if (1.0 < end.z) {\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }" if (parenthesized_expression "(1.0 < end.z)" ( (binary_expression "1.0 < end.z" number_literal < (field_expression "end.z" identifier . field_identifier)) )) (compound_statement "{\n                  fVar5 = *(float *)(unaff_EDI + 0xec399);\n                }" { (expression_statement "fVar5 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar5 = *(float *)(unaff_EDI + 0xec399)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec399)" * (cast_expression "(float *)(unaff_EDI + 0xec399)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec399)" ( (binary_expression "unaff_EDI + 0xec399" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }" else (compound_statement "{\n                  fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);\n                }" { (expression_statement "fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar5 = end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d)" identifier = (binary_expression "end.z * *(float *)(unaff_EDI + 0xd9031) + *(float *)(unaff_EDI + 0xb227d)" (binary_expression "end.z * *(float *)(unaff_EDI + 0xd9031)" (field_expression "end.z" identifier . field_identifier) * (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))) + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))))) ;) })))) }))) (expression_statement "uVar14 = (undefined2)((uint)___cwtmp >> 0x10);" (assignment_expression "uVar14 = (undefined2)((uint)___cwtmp >> 0x10)" identifier = (call_expression "(undefined2)((uint)___cwtmp >> 0x10)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "((uint)___cwtmp >> 0x10)" ( (binary_expression "(uint)___cwtmp >> 0x10" (cast_expression "(uint)___cwtmp" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (fVar5 <= 0.0) {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }" if (parenthesized_expression "(fVar5 <= 0.0)" ( (binary_expression "fVar5 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }" { (expression_statement "___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);" (assignment_expression "___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800)" identifier = (cast_expression "(float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800)" ( (binary_expression "CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800" (binary_expression "CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff" (call_expression "CONCAT22(uVar14,in_FPUControlWord)" identifier (argument_list "(uVar14,in_FPUControlWord)" ( identifier , identifier ))) & number_literal) | number_literal) )))) ;) }) (else_clause "else {\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }" else (compound_statement "{\n                ___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }" { (expression_statement "___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);" (assignment_expression "___cwtmp = (float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400)" identifier = (cast_expression "(float)(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400)" ( (binary_expression "CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400" (binary_expression "CONCAT22(uVar14,in_FPUControlWord) & 0xfffff3ff" (call_expression "CONCAT22(uVar14,in_FPUControlWord)" identifier (argument_list "(uVar14,in_FPUControlWord)" ( identifier , identifier ))) & number_literal) | number_literal) )))) ;) }))) (expression_statement "xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord);" (assignment_expression "xSumwSum.x = (float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord)" (field_expression "xSumwSum.x" identifier . field_identifier) = (cast_expression "(float)CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT22(xSumwSum.x._2_2_,in_FPUControlWord)" identifier (argument_list "(xSumwSum.x._2_2_,in_FPUControlWord)" ( (field_expression "xSumwSum.x._2_2_" (field_expression "xSumwSum.x" identifier . field_identifier) . field_identifier) , identifier ))))) ;) (expression_statement "end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "end.x = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" (field_expression "end.x" identifier . field_identifier) = (binary_expression "ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar2)" identifier (argument_list "(fVar2)" ( identifier ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) )))))) ;) (expression_statement "pointsWeights[0].x = start.x;" (assignment_expression "pointsWeights[0].x = start.x" (field_expression "pointsWeights[0].x" (subscript_expression "pointsWeights[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "start.x" identifier . field_identifier)) ;) (expression_statement "end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);" (assignment_expression "end.y = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" (field_expression "end.y" identifier . field_identifier) = (binary_expression "*(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" (pointer_expression "*(float *)(unaff_EDI + 0xec3b1)" * (cast_expression "(float *)(unaff_EDI + 0xec3b1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b1)" ( (binary_expression "unaff_EDI + 0xec3b1" identifier + number_literal) )))) * (call_expression "ROUND(fVar3)" identifier (argument_list "(fVar3)" ( identifier ))))) ;) (expression_statement "pointsWeights[0].y = start.y;" (assignment_expression "pointsWeights[0].y = start.y" (field_expression "pointsWeights[0].y" (subscript_expression "pointsWeights[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "start.y" identifier . field_identifier)) ;) (expression_statement "end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "end.z = ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad)" (field_expression "end.z" identifier . field_identifier) = (binary_expression "ROUND(fVar5) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar5)" identifier (argument_list "(fVar5)" ( identifier ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) )))))) ;) (expression_statement "pointsWeights[0].z = start.z;" (assignment_expression "pointsWeights[0].z = start.z" (field_expression "pointsWeights[0].z" (subscript_expression "pointsWeights[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "start.z" identifier . field_identifier)) ;) (expression_statement "pointsWeights[0].w = end.x;" (assignment_expression "pointsWeights[0].w = end.x" (field_expression "pointsWeights[0].w" (subscript_expression "pointsWeights[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "end.x" identifier . field_identifier)) ;) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec3b5);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec3b5)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec3b5)" * (cast_expression "(float *)(unaff_EDI + 0xec3b5)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b5)" ( (binary_expression "unaff_EDI + 0xec3b5" identifier + number_literal) ))))) ;) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xec3b9);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xec3b9)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec3b9)" * (cast_expression "(float *)(unaff_EDI + 0xec3b9)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b9)" ( (binary_expression "unaff_EDI + 0xec3b9" identifier + number_literal) ))))) ;) (expression_statement "pointsWeights[1].x = end.y;" (assignment_expression "pointsWeights[1].x = end.y" (field_expression "pointsWeights[1].x" (subscript_expression "pointsWeights[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "end.y" identifier . field_identifier)) ;) (expression_statement "pointsWeights[1].y = end.z;" (assignment_expression "pointsWeights[1].y = end.z" (field_expression "pointsWeights[1].y" (subscript_expression "pointsWeights[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "end.z" identifier . field_identifier)) ;) (expression_statement "pointsWeights[1].z = end.x * fVar3 + start.x * fVar2;" (assignment_expression "pointsWeights[1].z = end.x * fVar3 + start.x * fVar2" (field_expression "pointsWeights[1].z" (subscript_expression "pointsWeights[1]" identifier [ number_literal ]) . field_identifier) = (binary_expression "end.x * fVar3 + start.x * fVar2" (binary_expression "end.x * fVar3" (field_expression "end.x" identifier . field_identifier) * identifier) + (binary_expression "start.x * fVar2" (field_expression "start.x" identifier . field_identifier) * identifier))) ;) (expression_statement "pointsWeights[1].w = end.y * fVar3 + start.y * fVar2;" (assignment_expression "pointsWeights[1].w = end.y * fVar3 + start.y * fVar2" (field_expression "pointsWeights[1].w" (subscript_expression "pointsWeights[1]" identifier [ number_literal ]) . field_identifier) = (binary_expression "end.y * fVar3 + start.y * fVar2" (binary_expression "end.y * fVar3" (field_expression "end.y" identifier . field_identifier) * identifier) + (binary_expression "start.y * fVar2" (field_expression "start.y" identifier . field_identifier) * identifier))) ;) (expression_statement "pointsWeights[2].x = end.z * fVar3 + start.z * fVar2;" (assignment_expression "pointsWeights[2].x = end.z * fVar3 + start.z * fVar2" (field_expression "pointsWeights[2].x" (subscript_expression "pointsWeights[2]" identifier [ number_literal ]) . field_identifier) = (binary_expression "end.z * fVar3 + start.z * fVar2" (binary_expression "end.z * fVar3" (field_expression "end.z" identifier . field_identifier) * identifier) + (binary_expression "start.z * fVar2" (field_expression "start.z" identifier . field_identifier) * identifier))) ;) (expression_statement "pointsWeights[2].y = end.x * fVar2 + start.x * fVar3;" (assignment_expression "pointsWeights[2].y = end.x * fVar2 + start.x * fVar3" (field_expression "pointsWeights[2].y" (subscript_expression "pointsWeights[2]" identifier [ number_literal ]) . field_identifier) = (binary_expression "end.x * fVar2 + start.x * fVar3" (binary_expression "end.x * fVar2" (field_expression "end.x" identifier . field_identifier) * identifier) + (binary_expression "start.x * fVar3" (field_expression "start.x" identifier . field_identifier) * identifier))) ;) (expression_statement "pointsWeights[2].z = end.y * fVar2 + start.y * fVar3;" (assignment_expression "pointsWeights[2].z = end.y * fVar2 + start.y * fVar3" (field_expression "pointsWeights[2].z" (subscript_expression "pointsWeights[2]" identifier [ number_literal ]) . field_identifier) = (binary_expression "end.y * fVar2 + start.y * fVar3" (binary_expression "end.y * fVar2" (field_expression "end.y" identifier . field_identifier) * identifier) + (binary_expression "start.y * fVar3" (field_expression "start.y" identifier . field_identifier) * identifier))) ;) (expression_statement "pointsWeights[2].w = fVar3 * start.z + end.z * fVar2;" (assignment_expression "pointsWeights[2].w = fVar3 * start.z + end.z * fVar2" (field_expression "pointsWeights[2].w" (subscript_expression "pointsWeights[2]" identifier [ number_literal ]) . field_identifier) = (binary_expression "fVar3 * start.z + end.z * fVar2" (binary_expression "fVar3 * start.z" identifier * (field_expression "start.z" identifier . field_identifier)) + (binary_expression "end.z * fVar2" (field_expression "end.z" identifier . field_identifier) * identifier))) ;) (if_statement "if (0 < (int)local_4d4) {\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }" if (parenthesized_expression "(0 < (int)local_4d4)" ( (binary_expression "0 < (int)local_4d4" number_literal < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                puVar43 = order;\n                pDVar39 = points;\n                puVar25 = puVar43 + (int)local_4d4;\n                do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);\n              }" { (expression_statement "puVar43 = order;" (assignment_expression "puVar43 = order" identifier = identifier) ;) (expression_statement "pDVar39 = points;" (assignment_expression "pDVar39 = points" identifier = identifier) ;) (expression_statement "puVar25 = puVar43 + (int)local_4d4;" (assignment_expression "puVar25 = puVar43 + (int)local_4d4" identifier = (binary_expression "puVar43 + (int)local_4d4" identifier + (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                } while (puVar43 != puVar25);" do (compound_statement "{\n                  iVar18 = 0;\n                  iVar33 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pDVar42 = pointsWeights;\n                  do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);\n                  *puVar43 = (uchar)iVar18;\n                  puVar43 = puVar43 + 1;\n                  pDVar39 = pDVar39 + 1;\n                }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec3a1);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec3a1)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec3a1)" * (cast_expression "(float *)(unaff_EDI + 0xec3a1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3a1)" ( (binary_expression "unaff_EDI + 0xec3a1" identifier + number_literal) ))))) ;) (expression_statement "pDVar42 = pointsWeights;" (assignment_expression "pDVar42 = pointsWeights" identifier = identifier) ;) (do_statement "do {\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  } while (iVar33 != 4);" do (compound_statement "{\n                    fVar3 = pDVar39->x - pDVar42->x;\n                    fVar4 = pDVar39->y - pDVar42->y;\n                    fVar5 = pDVar39->z - pDVar42->z;\n                    fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;\n                    if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }\n                    iVar33 = iVar33 + 1;\n                    pDVar42 = (DDSVector4 *)&pDVar42->w;\n                  }" { (expression_statement "fVar3 = pDVar39->x - pDVar42->x;" (assignment_expression "fVar3 = pDVar39->x - pDVar42->x" identifier = (binary_expression "pDVar39->x - pDVar42->x" (field_expression "pDVar39->x" identifier -> field_identifier) - (field_expression "pDVar42->x" identifier -> field_identifier))) ;) (expression_statement "fVar4 = pDVar39->y - pDVar42->y;" (assignment_expression "fVar4 = pDVar39->y - pDVar42->y" identifier = (binary_expression "pDVar39->y - pDVar42->y" (field_expression "pDVar39->y" identifier -> field_identifier) - (field_expression "pDVar42->y" identifier -> field_identifier))) ;) (expression_statement "fVar5 = pDVar39->z - pDVar42->z;" (assignment_expression "fVar5 = pDVar39->z - pDVar42->z" identifier = (binary_expression "pDVar39->z - pDVar42->z" (field_expression "pDVar39->z" identifier -> field_identifier) - (field_expression "pDVar42->z" identifier -> field_identifier))) ;) (expression_statement "fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3;" (assignment_expression "fVar3 = fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3" identifier = (binary_expression "fVar5 * fVar5 + fVar4 * fVar4 + fVar3 * fVar3" (binary_expression "fVar5 * fVar5 + fVar4 * fVar4" (binary_expression "fVar5 * fVar5" identifier * identifier) + (binary_expression "fVar4 * fVar4" identifier * identifier)) + (binary_expression "fVar3 * fVar3" identifier * identifier))) ;) (if_statement "if (fVar3 < fVar2) {\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }" if (parenthesized_expression "(fVar3 < fVar2)" ( (binary_expression "fVar3 < fVar2" identifier < identifier) )) (compound_statement "{\n                      iVar18 = iVar33;\n                      fVar2 = fVar3;\n                    }" { (expression_statement "iVar18 = iVar33;" (assignment_expression "iVar18 = iVar33" identifier = identifier) ;) (expression_statement "fVar2 = fVar3;" (assignment_expression "fVar2 = fVar3" identifier = identifier) ;) })) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "pDVar42 = (DDSVector4 *)&pDVar42->w;" (assignment_expression "pDVar42 = (DDSVector4 *)&pDVar42->w" identifier = (cast_expression "(DDSVector4 *)&pDVar42->w" ( (type_descriptor "DDSVector4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pDVar42->w" & (field_expression "pDVar42->w" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(iVar33 != 4)" ( (binary_expression "iVar33 != 4" identifier != number_literal) )) ;) (expression_statement "*puVar43 = (uchar)iVar18;" (assignment_expression "*puVar43 = (uchar)iVar18" (pointer_expression "*puVar43" * identifier) = (cast_expression "(uchar)iVar18" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "puVar43 = puVar43 + 1;" (assignment_expression "puVar43 = puVar43 + 1" identifier = (binary_expression "puVar43 + 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 "(puVar43 != puVar25)" ( (binary_expression "puVar43 != puVar25" identifier != identifier) )) ;) })) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              } while (iVar18 != 0x10);" do (compound_statement "{\n                if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }\n                iVar18 = iVar18 + 1;\n              }" { (if_statement "if (map[iVar18] == -1) {\n                  indices[iVar18] = '\x03';\n                }\n                else {\n                  indices[iVar18] = order[map[iVar18]];\n                }" if (parenthesized_expression "(map[iVar18] == -1)" ( (binary_expression "map[iVar18] == -1" (subscript_expression "map[iVar18]" identifier [ identifier ]) == number_literal) )) (compound_statement "{\n                  indices[iVar18] = '\x03';\n                }" { (expression_statement "indices[iVar18] = '\x03';" (assignment_expression "indices[iVar18] = '\x03'" (subscript_expression "indices[iVar18]" identifier [ identifier ]) = (char_literal "'\x03'" ' escape_sequence ')) ;) }) (else_clause "else {\n                  indices[iVar18] = order[map[iVar18]];\n                }" else (compound_statement "{\n                  indices[iVar18] = order[map[iVar18]];\n                }" { (expression_statement "indices[iVar18] = order[map[iVar18]];" (assignment_expression "indices[iVar18] = order[map[iVar18]]" (subscript_expression "indices[iVar18]" identifier [ identifier ]) = (subscript_expression "order[map[iVar18]]" identifier [ (subscript_expression "map[iVar18]" identifier [ identifier ]) ])) ;) }))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0x10)" ( (binary_expression "iVar18 != 0x10" identifier != number_literal) )) ;) }))) (labeled_statement "LAB_001edb47:\n            start_00.y = start.y;" statement_identifier : (expression_statement "start_00.y = start.y;" (assignment_expression "start_00.y = start.y" (field_expression "start_00.y" identifier . field_identifier) = (field_expression "start.y" identifier . field_identifier)) ;)) (expression_statement "start_00.x = start.x;" (assignment_expression "start_00.x = start.x" (field_expression "start_00.x" identifier . field_identifier) = (field_expression "start.x" identifier . field_identifier)) ;) (expression_statement "start_00.z = start.z;" (assignment_expression "start_00.z = start.z" (field_expression "start_00.z" identifier . field_identifier) = (field_expression "start.z" identifier . field_identifier)) ;) (expression_statement "end_00.y = end.y;" (assignment_expression "end_00.y = end.y" (field_expression "end_00.y" identifier . field_identifier) = (field_expression "end.y" identifier . field_identifier)) ;) (expression_statement "end_00.x = end.x;" (assignment_expression "end_00.x = end.x" (field_expression "end_00.x" identifier . field_identifier) = (field_expression "end.x" identifier . field_identifier)) ;) (expression_statement "end_00.z = end.z;" (assignment_expression "end_00.z = end.z" (field_expression "end_00.z" identifier . field_identifier) = (field_expression "end.z" identifier . field_identifier)) ;) (expression_statement "WriteIndices(image_00,start_00,end_00,indices);" (call_expression "WriteIndices(image_00,start_00,end_00,indices)" identifier (argument_list "(image_00,start_00,end_00,indices)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }" else (compound_statement "{\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);\n            if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }\n            if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            indices[0] = (uchar)uVar19;\n            uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);\n            if (0xff < uVar23) {\n              uVar23 = 0xff;\n            }\n            indices[1] = (uchar)uVar23;\n            uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);\n            if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }\n            indices[2] = (uchar)uVar31;\n            uVar6 = '\0';\n            uVar24 = uVar19;\n            while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            puVar43 = unordered;\n            do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);\n            iVar18 = 0;\n            do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);\nLAB_001edf11:\n            start_01.y = xSumwSum.y;\n            start_01.x = xSumwSum.x;\n            start_01.z = xSumwSum.z;\n            end_01.y = (float)local_388;\n            end_01.x = ___cwtmp;\n            end_01.z = (float)local_384;\n            WriteIndices(image_00,start_01,end_01,order);\n          }" { (expression_statement "local_4b0 = 0xff;" (assignment_expression "local_4b0 = 0xff" identifier = number_literal) ;) (expression_statement "local_4d4 = 0.0;" (assignment_expression "local_4d4 = 0.0" identifier = number_literal) ;) (expression_statement "local_4ac = 3.57331e-43;" (assignment_expression "local_4ac = 3.57331e-43" identifier = number_literal) ;) (expression_statement "local_4b8 = 0.0;" (assignment_expression "local_4b8 = 0.0" identifier = number_literal) ;) (expression_statement "local_4a0 = 0;" (assignment_expression "local_4a0 = 0" identifier = number_literal) ;) (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" identifier = number_literal) ;) (do_statement "do {\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)sVar17);" do (compound_statement "{\n              if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            }" { (if_statement "if (0 < (int)columns) {\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }" if (parenthesized_expression "(0 < (int)columns)" ( (binary_expression "0 < (int)columns" number_literal < (cast_expression "(int)columns" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pPVar8 = image_00->channel_map;\n                sVar26 = image_00->number_channels;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                pQVar37 = local_4a8;\n                do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);\n              }" { (expression_statement "pPVar8 = image_00->channel_map;" (assignment_expression "pPVar8 = image_00->channel_map" identifier = (field_expression "image_00->channel_map" identifier -> field_identifier)) ;) (expression_statement "sVar26 = image_00->number_channels;" (assignment_expression "sVar26 = image_00->number_channels" identifier = (field_expression "image_00->number_channels" identifier -> field_identifier)) ;) (expression_statement "local_4e0 = (float)((int)local_4c0 << 4);" (assignment_expression "local_4e0 = (float)((int)local_4c0 << 4)" identifier = (cast_expression "(float)((int)local_4c0 << 4)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)local_4c0 << 4)" ( (binary_expression "(int)local_4c0 << 4" (cast_expression "(int)local_4c0" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "pQVar37 = local_4a8;" (assignment_expression "pQVar37 = local_4a8" identifier = identifier) ;) (do_statement "do {\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0);" do (compound_statement "{\n                  uVar19 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)alphas + (int)local_4e0) = uVar19;\n                  fVar2 = (float)pQVar37[pPVar8->offset];\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)pQVar37[pPVar8[1].offset];\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar5 = (float)pQVar37[pPVar8[2].offset];\n                  if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  pQVar37 = pQVar37 + sVar26;\n                  if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }\n                  points[(int)local_4d4].x = fVar2;\n                  points[(int)local_4d4].y = fVar3;\n                  points[(int)local_4d4].z = fVar5;\n                  points[(int)local_4d4].w = fVar4;\n                  *(float *)((int)map + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                }" { (expression_statement "uVar19 = 0xff;" (assignment_expression "uVar19 = 0xff" identifier = number_literal) ;) (expression_statement "local_4dc._0_1_ = 0xff;" (assignment_expression "local_4dc._0_1_ = 0xff" (field_expression "local_4dc._0_1_" identifier . field_identifier) = number_literal) ;) (if_statement "if (iVar29 == 0x35545844) {\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar29 == 0x35545844)" ( (binary_expression "iVar29 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n                    if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }\n                  }" { (if_statement "if (image_00->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }" if (parenthesized_expression "(image_00->channel_map[4].traits == UndefinedPixelTrait)" ( (binary_expression "image_00->channel_map[4].traits == UndefinedPixelTrait" (field_expression "image_00->channel_map[4].traits" (subscript_expression "image_00->channel_map[4]" (field_expression "image_00->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }" { (labeled_statement "LAB_001ed600:\n                      local_4b8 = 3.57331e-43;" statement_identifier : (expression_statement "local_4b8 = 3.57331e-43;" (assignment_expression "local_4b8 = 3.57331e-43" identifier = number_literal) ;)) }) (else_clause "else if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }" else (if_statement "if (pQVar37[image_00->channel_map[4].offset] <= 0.0) {\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }\n                    else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }" if (parenthesized_expression "(pQVar37[image_00->channel_map[4].offset] <= 0.0)" ( (binary_expression "pQVar37[image_00->channel_map[4].offset] <= 0.0" (subscript_expression "pQVar37[image_00->channel_map[4].offset]" identifier [ (field_expression "image_00->channel_map[4].offset" (subscript_expression "image_00->channel_map[4]" (field_expression "image_00->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) <= number_literal) )) (compound_statement "{\n                      uVar19 = 0;\n                      local_4dc._0_1_ = 0;\n                      local_4b0 = 0;\n                    }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "local_4dc._0_1_ = 0;" (assignment_expression "local_4dc._0_1_ = 0" (field_expression "local_4dc._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_4b0 = 0;" (assignment_expression "local_4b0 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }" else (compound_statement "{\n                      dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);\n                      if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;\n                      local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));\n                      uVar19 = (uint)local_4dc._0_1_;\n                      if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }\n                      if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }\n                      if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }\n                    }" { (expression_statement "dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149);" (assignment_expression "dVar12 = pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149)" identifier = (binary_expression "pQVar37[image_00->channel_map[4].offset] /\n                               (double)*(float *)(unaff_EDI + 0xbb149)" (subscript_expression "pQVar37[image_00->channel_map[4].offset]" identifier [ (field_expression "image_00->channel_map[4].offset" (subscript_expression "image_00->channel_map[4]" (field_expression "image_00->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) / (cast_expression "(double)*(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" * (cast_expression "(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb149)" ( (binary_expression "unaff_EDI + 0xbb149" identifier + number_literal) ))))))) ;) (if_statement "if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12) goto LAB_001ed600;" if (parenthesized_expression "((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12)" ( (binary_expression "(double)*(float *)(unaff_EDI + 0xbb14d) <= dVar12" (cast_expression "(double)*(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) ))))) <= identifier) )) (goto_statement "goto LAB_001ed600;" goto statement_identifier ;)) (expression_statement "local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d));" (assignment_expression "local_4dc._0_1_ =\n                           (byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d))" (field_expression "local_4dc._0_1_" identifier . field_identifier) = (cast_expression "(byte)(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d))" identifier (argument_list "(dVar12 + (double)*(float *)(unaff_EDI + 0xb227d))" ( (binary_expression "dVar12 + (double)*(float *)(unaff_EDI + 0xb227d)" identifier + (cast_expression "(double)*(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))))) )))))) ;) (expression_statement "uVar19 = (uint)local_4dc._0_1_;" (assignment_expression "uVar19 = (uint)local_4dc._0_1_" identifier = (cast_expression "(uint)local_4dc._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_4dc._0_1_" identifier . field_identifier))) ;) (if_statement "if (uVar19 < local_4b0) {\n                        local_4b0 = uVar19;\n                      }" if (parenthesized_expression "(uVar19 < local_4b0)" ( (binary_expression "uVar19 < local_4b0" identifier < identifier) )) (compound_statement "{\n                        local_4b0 = uVar19;\n                      }" { (expression_statement "local_4b0 = uVar19;" (assignment_expression "local_4b0 = uVar19" identifier = identifier) ;) })) (if_statement "if ((uint)local_4b8 < uVar19) {\n                        local_4b8 = (float)uVar19;\n                      }" if (parenthesized_expression "((uint)local_4b8 < uVar19)" ( (binary_expression "(uint)local_4b8 < uVar19" (cast_expression "(uint)local_4b8" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )) (compound_statement "{\n                        local_4b8 = (float)uVar19;\n                      }" { (expression_statement "local_4b8 = (float)uVar19;" (assignment_expression "local_4b8 = (float)uVar19" identifier = (cast_expression "(float)uVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (local_4dc._0_1_ == 0) {\n                        uVar19 = 0;\n                      }\n                      else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }" if (parenthesized_expression "(local_4dc._0_1_ == 0)" ( (binary_expression "local_4dc._0_1_ == 0" (field_expression "local_4dc._0_1_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                        uVar19 = 0;\n                      }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }" else (compound_statement "{\n                        if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }\n                        if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }\n                      }" { (if_statement "if (uVar19 < (uint)local_4ac) {\n                          local_4ac = (float)uVar19;\n                        }" if (parenthesized_expression "(uVar19 < (uint)local_4ac)" ( (binary_expression "uVar19 < (uint)local_4ac" identifier < (cast_expression "(uint)local_4ac" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                          local_4ac = (float)uVar19;\n                        }" { (expression_statement "local_4ac = (float)uVar19;" (assignment_expression "local_4ac = (float)uVar19" identifier = (cast_expression "(float)uVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (local_4dc._0_1_ == 0xff) {\n                          uVar19 = 0xff;\n                        }\n                        else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }" if (parenthesized_expression "(local_4dc._0_1_ == 0xff)" ( (binary_expression "local_4dc._0_1_ == 0xff" (field_expression "local_4dc._0_1_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                          uVar19 = 0xff;\n                        }" { (expression_statement "uVar19 = 0xff;" (assignment_expression "uVar19 = 0xff" identifier = number_literal) ;) }) (else_clause "else if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }" else (if_statement "if (local_4a0 < uVar19) {\n                          local_4a0 = uVar19;\n                        }" if (parenthesized_expression "(local_4a0 < uVar19)" ( (binary_expression "local_4a0 < uVar19" identifier < identifier) )) (compound_statement "{\n                          local_4a0 = uVar19;\n                        }" { (expression_statement "local_4a0 = uVar19;" (assignment_expression "local_4a0 = uVar19" identifier = identifier) ;) })))) }))) }))))) })) (expression_statement "*(uint *)((int)alphas + (int)local_4e0) = uVar19;" (assignment_expression "*(uint *)((int)alphas + (int)local_4e0) = uVar19" (pointer_expression "*(uint *)((int)alphas + (int)local_4e0)" * (cast_expression "(uint *)((int)alphas + (int)local_4e0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)alphas + (int)local_4e0)" ( (binary_expression "(int)alphas + (int)local_4e0" (cast_expression "(int)alphas" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) (expression_statement "fVar2 = (float)pQVar37[pPVar8->offset];" (assignment_expression "fVar2 = (float)pQVar37[pPVar8->offset]" identifier = (cast_expression "(float)pQVar37[pPVar8->offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pQVar37[pPVar8->offset]" identifier [ (field_expression "pPVar8->offset" identifier -> field_identifier) ]))) ;) (if_statement "if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(NAN(fVar2))" ( (call_expression "NAN(fVar2)" identifier (argument_list "(fVar2)" ( identifier ))) )) (compound_statement "{\n                    fVar2 = 0.0;\n                  }" { (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (if_statement "if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(fVar2 <= 0.0)" ( (binary_expression "fVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    fVar2 = 0.0;\n                  }" { (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (compound_statement "{\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" { (expression_statement "fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);" (assignment_expression "fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149)" identifier = (binary_expression "fVar2 / *(float *)(unaff_EDI + 0xbb149)" identifier / (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" * (cast_expression "(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb149)" ( (binary_expression "unaff_EDI + 0xbb149" identifier + number_literal) )))))) ;) (if_statement "if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" if (parenthesized_expression "(*(float *)(unaff_EDI + 0xbb14d) <= fVar2)" ( (binary_expression "*(float *)(unaff_EDI + 0xbb14d) <= fVar2" (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                      fVar2 = 1.0;\n                    }" { (expression_statement "fVar2 = 1.0;" (assignment_expression "fVar2 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" else (compound_statement "{\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" { (expression_statement "fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" identifier = (binary_expression "(float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (cast_expression "(float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (binary_expression "(short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff" (cast_expression "(short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d))" identifier (argument_list "(fVar2 + *(float *)(unaff_EDI + 0xb227d))" ( (binary_expression "fVar2 + *(float *)(unaff_EDI + 0xb227d)" identifier + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) )))) & number_literal) ))) / (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))))) ;) }))) }))))) (expression_statement "fVar3 = (float)pQVar37[pPVar8[1].offset];" (assignment_expression "fVar3 = (float)pQVar37[pPVar8[1].offset]" identifier = (cast_expression "(float)pQVar37[pPVar8[1].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pQVar37[pPVar8[1].offset]" identifier [ (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier) ]))) ;) (if_statement "if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(NAN(fVar3))" ( (call_expression "NAN(fVar3)" identifier (argument_list "(fVar3)" ( identifier ))) )) (compound_statement "{\n                    fVar3 = 0.0;\n                  }" { (expression_statement "fVar3 = 0.0;" (assignment_expression "fVar3 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (if_statement "if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(fVar3 <= 0.0)" ( (binary_expression "fVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    fVar3 = 0.0;\n                  }" { (expression_statement "fVar3 = 0.0;" (assignment_expression "fVar3 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (compound_statement "{\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" { (expression_statement "fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);" (assignment_expression "fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149)" identifier = (binary_expression "fVar3 / *(float *)(unaff_EDI + 0xbb149)" identifier / (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" * (cast_expression "(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb149)" ( (binary_expression "unaff_EDI + 0xbb149" identifier + number_literal) )))))) ;) (if_statement "if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" if (parenthesized_expression "(*(float *)(unaff_EDI + 0xbb14d) <= fVar3)" ( (binary_expression "*(float *)(unaff_EDI + 0xbb14d) <= fVar3" (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                      fVar3 = 1.0;\n                    }" { (expression_statement "fVar3 = 1.0;" (assignment_expression "fVar3 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" else (compound_statement "{\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" { (expression_statement "fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" identifier = (binary_expression "(float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (cast_expression "(float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (binary_expression "(short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff" (cast_expression "(short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d))" identifier (argument_list "(fVar3 + *(float *)(unaff_EDI + 0xb227d))" ( (binary_expression "fVar3 + *(float *)(unaff_EDI + 0xb227d)" identifier + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) )))) & number_literal) ))) / (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))))) ;) }))) }))))) (expression_statement "fVar5 = (float)pQVar37[pPVar8[2].offset];" (assignment_expression "fVar5 = (float)pQVar37[pPVar8[2].offset]" identifier = (cast_expression "(float)pQVar37[pPVar8[2].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pQVar37[pPVar8[2].offset]" identifier [ (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier) ]))) ;) (if_statement "if (NAN(fVar5)) {\n                    fVar5 = 0.0;\n                  }\n                  else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(NAN(fVar5))" ( (call_expression "NAN(fVar5)" identifier (argument_list "(fVar5)" ( identifier ))) )) (compound_statement "{\n                    fVar5 = 0.0;\n                  }" { (expression_statement "fVar5 = 0.0;" (assignment_expression "fVar5 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (if_statement "if (fVar5 <= 0.0) {\n                    fVar5 = 0.0;\n                  }\n                  else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(fVar5 <= 0.0)" ( (binary_expression "fVar5 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    fVar5 = 0.0;\n                  }" { (expression_statement "fVar5 = 0.0;" (assignment_expression "fVar5 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (compound_statement "{\n                    fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" { (expression_statement "fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149);" (assignment_expression "fVar5 = fVar5 / *(float *)(unaff_EDI + 0xbb149)" identifier = (binary_expression "fVar5 / *(float *)(unaff_EDI + 0xbb149)" identifier / (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" * (cast_expression "(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb149)" ( (binary_expression "unaff_EDI + 0xbb149" identifier + number_literal) )))))) ;) (if_statement "if (*(float *)(unaff_EDI + 0xbb14d) <= fVar5) {\n                      fVar5 = 1.0;\n                    }\n                    else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" if (parenthesized_expression "(*(float *)(unaff_EDI + 0xbb14d) <= fVar5)" ( (binary_expression "*(float *)(unaff_EDI + 0xbb14d) <= fVar5" (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                      fVar5 = 1.0;\n                    }" { (expression_statement "fVar5 = 1.0;" (assignment_expression "fVar5 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" else (compound_statement "{\n                      fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" { (expression_statement "fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar5 = (float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" identifier = (binary_expression "(float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (cast_expression "(float)((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (binary_expression "(short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d)) & 0xff" (cast_expression "(short)ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar5 + *(float *)(unaff_EDI + 0xb227d))" identifier (argument_list "(fVar5 + *(float *)(unaff_EDI + 0xb227d))" ( (binary_expression "fVar5 + *(float *)(unaff_EDI + 0xb227d)" identifier + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) )))) & number_literal) ))) / (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))))) ;) }))) }))))) (if_statement "if (image == (Image *)0x0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }" if (parenthesized_expression "(image == (Image *)0x0)" ( (binary_expression "image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    fVar4 = 1.0;\n                  }" { (expression_statement "fVar4 = 1.0;" (assignment_expression "fVar4 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }" else (compound_statement "{\n                    fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }" { (expression_statement "fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5);" (assignment_expression "fVar4 = (float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5)" identifier = (binary_expression "(float)(uVar19 + 1) * *(float *)(unaff_EDI + 0xec3a5)" (cast_expression "(float)(uVar19 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar19 + 1)" ( (binary_expression "uVar19 + 1" identifier + number_literal) ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3a5)" * (cast_expression "(float *)(unaff_EDI + 0xec3a5)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3a5)" ( (binary_expression "unaff_EDI + 0xec3a5" identifier + number_literal) )))))) ;) }))) (expression_statement "pQVar37 = pQVar37 + sVar26;" (assignment_expression "pQVar37 = pQVar37 + sVar26" identifier = (binary_expression "pQVar37 + sVar26" identifier + identifier)) ;) (if_statement "if (0 < (int)local_4d4) {\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }" if (parenthesized_expression "(0 < (int)local_4d4)" ( (binary_expression "0 < (int)local_4d4" number_literal < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    pDVar39 = points;\n                    fVar30 = 0.0;\n                    do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);\n                  }" { (expression_statement "pDVar39 = points;" (assignment_expression "pDVar39 = points" identifier = identifier) ;) (expression_statement "fVar30 = 0.0;" (assignment_expression "fVar30 = 0.0" identifier = number_literal) ;) (do_statement "do {\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    } while (fVar30 != local_4d4);" do (compound_statement "{\n                      if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar30 = (float)((int)fVar30 + 1);\n                      pDVar39 = pDVar39 + 1;\n                    }" { (if_statement "if ((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))) {\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }" if (parenthesized_expression "((((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844))))" ( (binary_expression "(((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          ) && (((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))" (parenthesized_expression "(((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)\n                          )" ( (binary_expression "((pDVar39->x == fVar2) && (pDVar39->y == fVar3)) && (pDVar39->z == fVar5)" (parenthesized_expression "((pDVar39->x == fVar2) && (pDVar39->y == fVar3))" ( (binary_expression "(pDVar39->x == fVar2) && (pDVar39->y == fVar3)" (parenthesized_expression "(pDVar39->x == fVar2)" ( (binary_expression "pDVar39->x == fVar2" (field_expression "pDVar39->x" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(pDVar39->y == fVar3)" ( (binary_expression "pDVar39->y == fVar3" (field_expression "pDVar39->y" identifier -> field_identifier) == identifier) ))) )) && (parenthesized_expression "(pDVar39->z == fVar5)" ( (binary_expression "pDVar39->z == fVar5" (field_expression "pDVar39->z" identifier -> field_identifier) == identifier) ))) )) && (parenthesized_expression "(((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)))" ( (parenthesized_expression "((char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844))" ( (binary_expression "(char)local_4dc._0_1_ < '\0' || (iVar29 == 0x35545844)" (binary_expression "(char)local_4dc._0_1_ < '\0'" (cast_expression "(char)local_4dc._0_1_" ( (type_descriptor "char" primitive_type) ) (field_expression "local_4dc._0_1_" identifier . field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(iVar29 == 0x35545844)" ( (binary_expression "iVar29 == 0x35545844" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n                        points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;\n                        *(float *)((int)map + (int)local_4e0) = fVar30;\n                        goto LAB_001ed2a5;\n                      }" { (expression_statement "points[(int)fVar30].w = fVar4 + points[(int)fVar30].w;" (assignment_expression "points[(int)fVar30].w = fVar4 + points[(int)fVar30].w" (field_expression "points[(int)fVar30].w" (subscript_expression "points[(int)fVar30]" identifier [ (cast_expression "(int)fVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = (binary_expression "fVar4 + points[(int)fVar30].w" identifier + (field_expression "points[(int)fVar30].w" (subscript_expression "points[(int)fVar30]" identifier [ (cast_expression "(int)fVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier))) ;) (expression_statement "*(float *)((int)map + (int)local_4e0) = fVar30;" (assignment_expression "*(float *)((int)map + (int)local_4e0) = fVar30" (pointer_expression "*(float *)((int)map + (int)local_4e0)" * (cast_expression "(float *)((int)map + (int)local_4e0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)map + (int)local_4e0)" ( (binary_expression "(int)map + (int)local_4e0" (cast_expression "(int)map" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) (goto_statement "goto LAB_001ed2a5;" goto statement_identifier ;) })) (expression_statement "fVar30 = (float)((int)fVar30 + 1);" (assignment_expression "fVar30 = (float)((int)fVar30 + 1)" identifier = (cast_expression "(float)((int)fVar30 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)fVar30 + 1)" ( (binary_expression "(int)fVar30 + 1" (cast_expression "(int)fVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pDVar39 = pDVar39 + 1;" (assignment_expression "pDVar39 = pDVar39 + 1" identifier = (binary_expression "pDVar39 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(fVar30 != local_4d4)" ( (binary_expression "fVar30 != local_4d4" identifier != identifier) )) ;) })) (expression_statement "points[(int)local_4d4].x = fVar2;" (assignment_expression "points[(int)local_4d4].x = fVar2" (field_expression "points[(int)local_4d4].x" (subscript_expression "points[(int)local_4d4]" identifier [ (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = identifier) ;) (expression_statement "points[(int)local_4d4].y = fVar3;" (assignment_expression "points[(int)local_4d4].y = fVar3" (field_expression "points[(int)local_4d4].y" (subscript_expression "points[(int)local_4d4]" identifier [ (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = identifier) ;) (expression_statement "points[(int)local_4d4].z = fVar5;" (assignment_expression "points[(int)local_4d4].z = fVar5" (field_expression "points[(int)local_4d4].z" (subscript_expression "points[(int)local_4d4]" identifier [ (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = identifier) ;) (expression_statement "points[(int)local_4d4].w = fVar4;" (assignment_expression "points[(int)local_4d4].w = fVar4" (field_expression "points[(int)local_4d4].w" (subscript_expression "points[(int)local_4d4]" identifier [ (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = identifier) ;) (expression_statement "*(float *)((int)map + (int)local_4e0) = local_4d4;" (assignment_expression "*(float *)((int)map + (int)local_4e0) = local_4d4" (pointer_expression "*(float *)((int)map + (int)local_4e0)" * (cast_expression "(float *)((int)map + (int)local_4e0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)map + (int)local_4e0)" ( (binary_expression "(int)map + (int)local_4e0" (cast_expression "(int)map" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) (expression_statement "local_4d4 = (float)((int)local_4d4 + 1);" (assignment_expression "local_4d4 = (float)((int)local_4d4 + 1)" identifier = (cast_expression "(float)((int)local_4d4 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)local_4d4 + 1)" ( (binary_expression "(int)local_4d4 + 1" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);" statement_identifier : (expression_statement "local_4e0 = (float)((int)local_4e0 + 4);" (assignment_expression "local_4e0 = (float)((int)local_4e0 + 4)" identifier = (cast_expression "(float)((int)local_4e0 + 4)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)local_4e0 + 4)" ( (binary_expression "(int)local_4e0 + 4" (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((float)((columns + (int)local_4c0 * 4) * 4) != local_4e0)" ( (binary_expression "(float)((columns + (int)local_4c0 * 4) * 4) != local_4e0" (cast_expression "(float)((columns + (int)local_4c0 * 4) * 4)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((columns + (int)local_4c0 * 4) * 4)" ( (binary_expression "(columns + (int)local_4c0 * 4) * 4" (parenthesized_expression "(columns + (int)local_4c0 * 4)" ( (binary_expression "columns + (int)local_4c0 * 4" identifier + (binary_expression "(int)local_4c0 * 4" (cast_expression "(int)local_4c0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )) * number_literal) ))) != identifier) )) ;) (expression_statement "local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns);" (assignment_expression "local_4a8 = (Quantum *)((int)local_4a8 + sVar26 * 8 * columns)" identifier = (cast_expression "(Quantum *)((int)local_4a8 + sVar26 * 8 * columns)" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_4a8 + sVar26 * 8 * columns)" ( (binary_expression "(int)local_4a8 + sVar26 * 8 * columns" (cast_expression "(int)local_4a8" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "sVar26 * 8 * columns" (binary_expression "sVar26 * 8" identifier * number_literal) * identifier)) )))) ;) })) (expression_statement "local_4c0 = (float)((int)local_4c0 + 1);" (assignment_expression "local_4c0 = (float)((int)local_4c0 + 1)" identifier = (cast_expression "(float)((int)local_4c0 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)local_4c0 + 1)" ( (binary_expression "(int)local_4c0 + 1" (cast_expression "(int)local_4c0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(local_4c0 != (float)sVar17)" ( (binary_expression "local_4c0 != (float)sVar17" identifier != (cast_expression "(float)sVar17" ( (type_descriptor "float" primitive_type) ) identifier)) )) ;) (if_statement "if (0 < (int)local_4d4) {\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }" if (parenthesized_expression "(0 < (int)local_4d4)" ( (binary_expression "0 < (int)local_4d4" number_literal < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pfVar20 = &points[0].w;\n              pfVar38 = pfVar20 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);\n            }" { (expression_statement "pfVar20 = &points[0].w;" (assignment_expression "pfVar20 = &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 "pfVar38 = pfVar20 + (int)local_4d4 * 4;" (assignment_expression "pfVar38 = pfVar20 + (int)local_4d4 * 4" identifier = (binary_expression "pfVar20 + (int)local_4d4 * 4" identifier + (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              } while (pfVar38 != pfVar20);" do (compound_statement "{\n                fVar2 = *pfVar20;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar20 = SQRT(fVar2);\n                pfVar20 = pfVar20 + 4;\n              }" { (expression_statement "fVar2 = *pfVar20;" (assignment_expression "fVar2 = *pfVar20" identifier = (pointer_expression "*pfVar20" * identifier)) ;) (if_statement "if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }" if (parenthesized_expression "(fVar2 < 0.0)" ( (binary_expression "fVar2 < 0.0" identifier < number_literal) )) (compound_statement "{\n                  sqrtf(fVar2);\n                }" { (expression_statement "sqrtf(fVar2);" (call_expression "sqrtf(fVar2)" identifier (argument_list "(fVar2)" ( identifier ))) ;) })) (expression_statement "*pfVar20 = SQRT(fVar2);" (assignment_expression "*pfVar20 = SQRT(fVar2)" (pointer_expression "*pfVar20" * identifier) = (call_expression "SQRT(fVar2)" identifier (argument_list "(fVar2)" ( identifier )))) ;) (expression_statement "pfVar20 = pfVar20 + 4;" (assignment_expression "pfVar20 = pfVar20 + 4" identifier = (binary_expression "pfVar20 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pfVar38 != pfVar20)" ( (binary_expression "pfVar38 != pfVar20" identifier != identifier) )) ;) })) (if_statement "if (iVar29 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }" if (parenthesized_expression "(iVar29 == 0x35545844)" ( (binary_expression "iVar29 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              puVar43 = unordered;\n              sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);\n              if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));\n              WriteBlobByte(image_00,(uchar)local_4b0);\n              do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);\n            }" { (if_statement "if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;" if (parenthesized_expression "(local_4a0 < (uint)local_4ac)" ( (binary_expression "local_4a0 < (uint)local_4ac" identifier < (cast_expression "(uint)local_4ac" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                local_4ac = (float)local_4a0;\n              }" { (expression_statement "local_4ac = (float)local_4a0;" (assignment_expression "local_4ac = (float)local_4a0" identifier = (cast_expression "(float)local_4a0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;" else (if_statement "if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;" if (parenthesized_expression "(4 < local_4a0 - (int)local_4ac)" ( (binary_expression "4 < local_4a0 - (int)local_4ac" number_literal < (binary_expression "local_4a0 - (int)local_4ac" identifier - (cast_expression "(int)local_4ac" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_001ee710;" goto statement_identifier ;)))) (expression_statement "local_4a0 = 0xff;" (assignment_expression "local_4a0 = 0xff" identifier = number_literal) ;) (if_statement "if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }" if (parenthesized_expression "((int)local_4ac + 5U < 0x100)" ( (binary_expression "(int)local_4ac + 5U < 0x100" (binary_expression "(int)local_4ac + 5U" (cast_expression "(int)local_4ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) < number_literal) )) (compound_statement "{\n                local_4a0 = (int)local_4ac + 5U;\n              }" { (expression_statement "local_4a0 = (int)local_4ac + 5U;" (assignment_expression "local_4a0 = (int)local_4ac + 5U" identifier = (binary_expression "(int)local_4ac + 5U" (cast_expression "(int)local_4ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) })) (if_statement "if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }" if (parenthesized_expression "(local_4a0 - (int)local_4ac < 5)" ( (binary_expression "local_4a0 - (int)local_4ac < 5" (binary_expression "local_4a0 - (int)local_4ac" identifier - (cast_expression "(int)local_4ac" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n                local_4ac = (float)(local_4a0 - 5);\n              }" { (expression_statement "local_4ac = (float)(local_4a0 - 5);" (assignment_expression "local_4ac = (float)(local_4a0 - 5)" identifier = (cast_expression "(float)(local_4a0 - 5)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(local_4a0 - 5)" ( (binary_expression "local_4a0 - 5" identifier - number_literal) )))) ;) })) (labeled_statement "LAB_001ee710:\n              puVar43 = unordered;" statement_identifier : (expression_statement "puVar43 = unordered;" (assignment_expression "puVar43 = unordered" identifier = identifier) ;)) (expression_statement "sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43);" (assignment_expression "sVar26 = CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43)" identifier = (call_expression "CompressAlpha((size_t)local_4ac,local_4a0,5,alphas,puVar43)" identifier (argument_list "((size_t)local_4ac,local_4a0,5,alphas,puVar43)" ( (cast_expression "(size_t)local_4ac" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier , number_literal , identifier , identifier )))) ;) (if_statement "if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" if (parenthesized_expression "((uint)local_4b8 < local_4b0)" ( (binary_expression "(uint)local_4b8 < local_4b0" (cast_expression "(uint)local_4b8" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )) (compound_statement "{\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }" { (labeled_statement "LAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;" statement_identifier : (expression_statement "uVar19 = (int)local_4b8 + 7;" (assignment_expression "uVar19 = (int)local_4b8 + 7" identifier = (binary_expression "(int)local_4b8 + 7" (cast_expression "(int)local_4b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;)) (if_statement "if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }" if (parenthesized_expression "(0xff < uVar19)" ( (binary_expression "0xff < uVar19" number_literal < identifier) )) (compound_statement "{\n                  uVar19 = 0xff;\n                }" { (expression_statement "uVar19 = 0xff;" (assignment_expression "uVar19 = 0xff" identifier = number_literal) ;) })) (if_statement "if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }" if (parenthesized_expression "(uVar19 - (int)local_4b8 < 7)" ( (binary_expression "uVar19 - (int)local_4b8 < 7" (binary_expression "uVar19 - (int)local_4b8" identifier - (cast_expression "(int)local_4b8" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }" { (expression_statement "local_4b0 = uVar19 - 7;" (assignment_expression "local_4b0 = uVar19 - 7" identifier = (binary_expression "uVar19 - 7" identifier - number_literal)) ;) (expression_statement "local_4b8 = (float)uVar19;" (assignment_expression "local_4b8 = (float)uVar19" identifier = (cast_expression "(float)uVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }" else (compound_statement "{\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }" { (expression_statement "local_4b0 = (uint)local_4b8;" (assignment_expression "local_4b0 = (uint)local_4b8" identifier = (cast_expression "(uint)local_4b8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_4b8 = (float)uVar19;" (assignment_expression "local_4b8 = (float)uVar19" identifier = (cast_expression "(float)uVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) }) (else_clause "else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" else (if_statement "if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" if (parenthesized_expression "((int)local_4b8 - local_4b0 < 7)" ( (binary_expression "(int)local_4b8 - local_4b0 < 7" (binary_expression "(int)local_4b8 - local_4b0" (cast_expression "(int)local_4b8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) < number_literal) )) (compound_statement "{\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" { (expression_statement "local_4b8 = (float)local_4b0;" (assignment_expression "local_4b8 = (float)local_4b0" identifier = (cast_expression "(float)local_4b0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_001eea60;" goto statement_identifier ;) })))) (expression_statement "sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order);" (assignment_expression "sVar17 = CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order)" identifier = (call_expression "CompressAlpha(local_4b0,(size_t)local_4b8,7,alphas,order)" identifier (argument_list "(local_4b0,(size_t)local_4b8,7,alphas,order)" ( identifier , (cast_expression "(size_t)local_4b8" ( (type_descriptor "size_t" primitive_type) ) identifier) , number_literal , identifier , identifier )))) ;) (if_statement "if (sVar17 < sVar26) {\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }" if (parenthesized_expression "(sVar17 < sVar26)" ( (binary_expression "sVar17 < sVar26" identifier < identifier) )) (compound_statement "{\n                iVar18 = 0;\n                do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                } while (iVar33 != 0x10);" do (compound_statement "{\n                  while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }\n                  uVar27 = '\t' - uVar6;\n                  if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }\n                  iVar33 = iVar18 + 1;\n                  puVar43[iVar18] = uVar27;\n                  iVar18 = iVar33;\n                }" { (while_statement "while (uVar6 = order[iVar18], uVar6 == '\0') {\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }" while (parenthesized_expression "(uVar6 = order[iVar18], uVar6 == '\0')" ( (comma_expression "uVar6 = order[iVar18], uVar6 == '\0'" (assignment_expression "uVar6 = order[iVar18]" identifier = (subscript_expression "order[iVar18]" identifier [ identifier ])) , (binary_expression "uVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n                    puVar43[iVar18] = '\x01';\n                    iVar18 = iVar18 + 1;\n                    if (iVar18 == 0x10) goto LAB_001ee8cf;\n                  }" { (expression_statement "puVar43[iVar18] = '\x01';" (assignment_expression "puVar43[iVar18] = '\x01'" (subscript_expression "puVar43[iVar18]" identifier [ identifier ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (iVar18 == 0x10) goto LAB_001ee8cf;" if (parenthesized_expression "(iVar18 == 0x10)" ( (binary_expression "iVar18 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_001ee8cf;" goto statement_identifier ;)) })) (expression_statement "uVar27 = '\t' - uVar6;" (assignment_expression "uVar27 = '\t' - uVar6" identifier = (binary_expression "'\t' - uVar6" (char_literal "'\t'" ' escape_sequence ') - identifier)) ;) (if_statement "if (uVar6 == '\x01') {\n                    uVar27 = '\0';\n                  }" if (parenthesized_expression "(uVar6 == '\x01')" ( (binary_expression "uVar6 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar27 = '\0';\n                  }" { (expression_statement "uVar27 = '\0';" (assignment_expression "uVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "iVar33 = iVar18 + 1;" (assignment_expression "iVar33 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "puVar43[iVar18] = uVar27;" (assignment_expression "puVar43[iVar18] = uVar27" (subscript_expression "puVar43[iVar18]" identifier [ identifier ]) = identifier) ;) (expression_statement "iVar18 = iVar33;" (assignment_expression "iVar18 = iVar33" identifier = identifier) ;) }) while (parenthesized_expression "(iVar33 != 0x10)" ( (binary_expression "iVar33 != 0x10" identifier != number_literal) )) ;) }) (else_clause "else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }" else (compound_statement "{\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }" { (expression_statement "local_4b0 = local_4a0;" (assignment_expression "local_4b0 = local_4a0" identifier = identifier) ;) (expression_statement "local_4b8 = local_4ac;" (assignment_expression "local_4b8 = local_4ac" identifier = identifier) ;) }))) (labeled_statement "LAB_001ee8cf:\n              WriteBlobByte(image_00,SUB41(local_4b8,0));" statement_identifier : (expression_statement "WriteBlobByte(image_00,SUB41(local_4b8,0));" (call_expression "WriteBlobByte(image_00,SUB41(local_4b8,0))" identifier (argument_list "(image_00,SUB41(local_4b8,0))" ( identifier , (call_expression "SUB41(local_4b8,0)" identifier (argument_list "(local_4b8,0)" ( identifier , number_literal ))) ))) ;)) (expression_statement "WriteBlobByte(image_00,(uchar)local_4b0);" (call_expression "WriteBlobByte(image_00,(uchar)local_4b0)" identifier (argument_list "(image_00,(uchar)local_4b0)" ( identifier , (cast_expression "(uchar)local_4b0" ( (type_descriptor "uchar" type_identifier) ) identifier) ))) ;) (do_statement "do {\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              } while (order != puVar43);" do (compound_statement "{\n                iVar18 = 0;\n                uVar19 = 0;\n                do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);\n                puVar43 = puVar43 + 8;\n                WriteBlobByte(image_00,(uchar)uVar19);\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 8));\n                WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                } while (iVar18 != 8);" do (compound_statement "{\n                  pbVar22 = puVar43 + iVar18;\n                  cVar13 = (char)iVar18;\n                  iVar18 = iVar18 + 1;\n                  uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);\n                }" { (expression_statement "pbVar22 = puVar43 + iVar18;" (assignment_expression "pbVar22 = puVar43 + iVar18" identifier = (binary_expression "puVar43 + iVar18" identifier + identifier)) ;) (expression_statement "cVar13 = (char)iVar18;" (assignment_expression "cVar13 = (char)iVar18" identifier = (cast_expression "(char)iVar18" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU);" (assignment_expression "uVar19 = uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU)" identifier = (binary_expression "uVar19 | (uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU)" identifier | (binary_expression "(uint)*pbVar22 << (cVar13 * '\x03' & 0x1fU)" (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier) << (parenthesized_expression "(cVar13 * '\x03' & 0x1fU)" ( (binary_expression "cVar13 * '\x03' & 0x1fU" (binary_expression "cVar13 * '\x03'" identifier * (char_literal "'\x03'" ' escape_sequence ')) & number_literal) ))))) ;) }) while (parenthesized_expression "(iVar18 != 8)" ( (binary_expression "iVar18 != 8" identifier != number_literal) )) ;) (expression_statement "puVar43 = puVar43 + 8;" (assignment_expression "puVar43 = puVar43 + 8" identifier = (binary_expression "puVar43 + 8" identifier + number_literal)) ;) (expression_statement "WriteBlobByte(image_00,(uchar)uVar19);" (call_expression "WriteBlobByte(image_00,(uchar)uVar19)" identifier (argument_list "(image_00,(uchar)uVar19)" ( identifier , (cast_expression "(uchar)uVar19" ( (type_descriptor "uchar" type_identifier) ) identifier) ))) ;) (expression_statement "WriteBlobByte(image_00,(uchar)(uVar19 >> 8));" (call_expression "WriteBlobByte(image_00,(uchar)(uVar19 >> 8))" identifier (argument_list "(image_00,(uchar)(uVar19 >> 8))" ( identifier , (call_expression "(uchar)(uVar19 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar19 >> 8)" ( (binary_expression "uVar19 >> 8" identifier >> number_literal) ))) ))) ;) (expression_statement "WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10));" (call_expression "WriteBlobByte(image_00,(uchar)(uVar19 >> 0x10))" identifier (argument_list "(image_00,(uchar)(uVar19 >> 0x10))" ( identifier , (call_expression "(uchar)(uVar19 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar19 >> 0x10)" ( (binary_expression "uVar19 >> 0x10" identifier >> number_literal) ))) ))) ;) }) while (parenthesized_expression "(order != puVar43)" ( (binary_expression "order != puVar43" identifier != identifier) )) ;) })) (if_statement "if (local_4d4 != 1.4013e-45) {\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }" if (parenthesized_expression "(local_4d4 != 1.4013e-45)" ( (binary_expression "local_4d4 != 1.4013e-45" identifier != number_literal) )) (compound_statement "{\n              fVar5 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }\n              goto LAB_001ed457;\n            }" { (expression_statement "fVar5 = 0.0;" (assignment_expression "fVar5 = 0.0" identifier = number_literal) ;) (if_statement "if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }" if (parenthesized_expression "(local_4d4 == 0.0)" ( (binary_expression "local_4d4 == 0.0" identifier == number_literal) )) (compound_statement "{\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar5;\n                fVar3 = local_4c0;\n              }" { (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" identifier = number_literal) ;) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" identifier = number_literal) ;) (expression_statement "fVar2 = fVar5;" (assignment_expression "fVar2 = fVar5" identifier = identifier) ;) (expression_statement "fVar3 = local_4c0;" (assignment_expression "fVar3 = local_4c0" identifier = identifier) ;) }) (else_clause "else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }" else (compound_statement "{\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pDVar39 = points;\n                do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pDVar39 = points;\n                do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);\n              }" { (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4b8 = 0.0;" (assignment_expression "local_4b8 = 0.0" identifier = number_literal) ;) (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) (expression_statement "pDVar39 = points;" (assignment_expression "pDVar39 = points" identifier = identifier) ;) (do_statement "do {\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);" do (compound_statement "{\n                  fVar3 = pDVar39->w;\n                  pDVar42 = pDVar39 + 1;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = pDVar39->x * fVar3 + local_4b8;\n                  local_4c0 = pDVar39->y * fVar3 + local_4c0;\n                  fVar5 = fVar3 * pDVar39->z + fVar5;\n                  pDVar39 = pDVar42;\n                }" { (expression_statement "fVar3 = pDVar39->w;" (assignment_expression "fVar3 = pDVar39->w" identifier = (field_expression "pDVar39->w" identifier -> field_identifier)) ;) (expression_statement "pDVar42 = pDVar39 + 1;" (assignment_expression "pDVar42 = pDVar39 + 1" identifier = (binary_expression "pDVar39 + 1" identifier + number_literal)) ;) (expression_statement "fVar2 = fVar2 + fVar3;" (assignment_expression "fVar2 = fVar2 + fVar3" identifier = (binary_expression "fVar2 + fVar3" identifier + identifier)) ;) (expression_statement "local_4b8 = pDVar39->x * fVar3 + local_4b8;" (assignment_expression "local_4b8 = pDVar39->x * fVar3 + local_4b8" identifier = (binary_expression "pDVar39->x * fVar3 + local_4b8" (binary_expression "pDVar39->x * fVar3" (field_expression "pDVar39->x" identifier -> field_identifier) * identifier) + identifier)) ;) (expression_statement "local_4c0 = pDVar39->y * fVar3 + local_4c0;" (assignment_expression "local_4c0 = pDVar39->y * fVar3 + local_4c0" identifier = (binary_expression "pDVar39->y * fVar3 + local_4c0" (binary_expression "pDVar39->y * fVar3" (field_expression "pDVar39->y" identifier -> field_identifier) * identifier) + identifier)) ;) (expression_statement "fVar5 = fVar3 * pDVar39->z + fVar5;" (assignment_expression "fVar5 = fVar3 * pDVar39->z + fVar5" identifier = (binary_expression "fVar3 * pDVar39->z + fVar5" (binary_expression "fVar3 * pDVar39->z" identifier * (field_expression "pDVar39->z" identifier -> field_identifier)) + identifier)) ;) (expression_statement "pDVar39 = pDVar42;" (assignment_expression "pDVar39 = pDVar42" identifier = identifier) ;) }) while (parenthesized_expression "(points + (int)local_4d4 != pDVar42)" ( (binary_expression "points + (int)local_4d4 != pDVar42" (binary_expression "points + (int)local_4d4" identifier + (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) ;) (if_statement "if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }" if (parenthesized_expression "(*(float *)(unaff_EDI + 0xec3a9) < fVar2)" ( (binary_expression "*(float *)(unaff_EDI + 0xec3a9) < fVar2" (pointer_expression "*(float *)(unaff_EDI + 0xec3a9)" * (cast_expression "(float *)(unaff_EDI + 0xec3a9)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3a9)" ( (binary_expression "unaff_EDI + 0xec3a9" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar5 = fVar5 / fVar2;\n                }" { (expression_statement "local_4b8 = local_4b8 / fVar2;" (assignment_expression "local_4b8 = local_4b8 / fVar2" identifier = (binary_expression "local_4b8 / fVar2" identifier / identifier)) ;) (expression_statement "local_4c0 = local_4c0 / fVar2;" (assignment_expression "local_4c0 = local_4c0 / fVar2" identifier = (binary_expression "local_4c0 / fVar2" identifier / identifier)) ;) (expression_statement "fVar5 = fVar5 / fVar2;" (assignment_expression "fVar5 = fVar5 / fVar2" identifier = (binary_expression "fVar5 / fVar2" identifier / identifier)) ;) })) (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" identifier = number_literal) ;) (expression_statement "fVar3 = 0.0;" (assignment_expression "fVar3 = 0.0" identifier = number_literal) ;) (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" identifier = number_literal) ;) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" identifier = number_literal) ;) (expression_statement "pDVar39 = points;" (assignment_expression "pDVar39 = points" identifier = identifier) ;) (do_statement "do {\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                } while (points + (int)local_4d4 != pDVar42);" do (compound_statement "{\n                  pDVar42 = pDVar39 + 1;\n                  fVar9 = pDVar39->x - local_4b8;\n                  fVar10 = pDVar39->y - local_4c0;\n                  fVar11 = pDVar39->z - fVar5;\n                  fVar4 = pDVar39->w;\n                  fVar30 = fVar11 * fVar4;\n                  local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;\n                  fVar2 = fVar9 * fVar10 * fVar4 + fVar2;\n                  local_4dc = fVar9 * fVar30 + local_4dc;\n                  fVar3 = fVar10 * fVar4 * fVar10 + fVar3;\n                  local_4e0 = fVar10 * fVar30 + local_4e0;\n                  local_4d0 = fVar11 * fVar30 + local_4d0;\n                  pDVar39 = pDVar42;\n                }" { (expression_statement "pDVar42 = pDVar39 + 1;" (assignment_expression "pDVar42 = pDVar39 + 1" identifier = (binary_expression "pDVar39 + 1" identifier + number_literal)) ;) (expression_statement "fVar9 = pDVar39->x - local_4b8;" (assignment_expression "fVar9 = pDVar39->x - local_4b8" identifier = (binary_expression "pDVar39->x - local_4b8" (field_expression "pDVar39->x" identifier -> field_identifier) - identifier)) ;) (expression_statement "fVar10 = pDVar39->y - local_4c0;" (assignment_expression "fVar10 = pDVar39->y - local_4c0" identifier = (binary_expression "pDVar39->y - local_4c0" (field_expression "pDVar39->y" identifier -> field_identifier) - identifier)) ;) (expression_statement "fVar11 = pDVar39->z - fVar5;" (assignment_expression "fVar11 = pDVar39->z - fVar5" identifier = (binary_expression "pDVar39->z - fVar5" (field_expression "pDVar39->z" identifier -> field_identifier) - identifier)) ;) (expression_statement "fVar4 = pDVar39->w;" (assignment_expression "fVar4 = pDVar39->w" identifier = (field_expression "pDVar39->w" identifier -> field_identifier)) ;) (expression_statement "fVar30 = fVar11 * fVar4;" (assignment_expression "fVar30 = fVar11 * fVar4" identifier = (binary_expression "fVar11 * fVar4" identifier * identifier)) ;) (expression_statement "local_4cc = fVar4 * fVar9 * fVar9 + local_4cc;" (assignment_expression "local_4cc = fVar4 * fVar9 * fVar9 + local_4cc" identifier = (binary_expression "fVar4 * fVar9 * fVar9 + local_4cc" (binary_expression "fVar4 * fVar9 * fVar9" (binary_expression "fVar4 * fVar9" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "fVar2 = fVar9 * fVar10 * fVar4 + fVar2;" (assignment_expression "fVar2 = fVar9 * fVar10 * fVar4 + fVar2" identifier = (binary_expression "fVar9 * fVar10 * fVar4 + fVar2" (binary_expression "fVar9 * fVar10 * fVar4" (binary_expression "fVar9 * fVar10" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "local_4dc = fVar9 * fVar30 + local_4dc;" (assignment_expression "local_4dc = fVar9 * fVar30 + local_4dc" identifier = (binary_expression "fVar9 * fVar30 + local_4dc" (binary_expression "fVar9 * fVar30" identifier * identifier) + identifier)) ;) (expression_statement "fVar3 = fVar10 * fVar4 * fVar10 + fVar3;" (assignment_expression "fVar3 = fVar10 * fVar4 * fVar10 + fVar3" identifier = (binary_expression "fVar10 * fVar4 * fVar10 + fVar3" (binary_expression "fVar10 * fVar4 * fVar10" (binary_expression "fVar10 * fVar4" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "local_4e0 = fVar10 * fVar30 + local_4e0;" (assignment_expression "local_4e0 = fVar10 * fVar30 + local_4e0" identifier = (binary_expression "fVar10 * fVar30 + local_4e0" (binary_expression "fVar10 * fVar30" identifier * identifier) + identifier)) ;) (expression_statement "local_4d0 = fVar11 * fVar30 + local_4d0;" (assignment_expression "local_4d0 = fVar11 * fVar30 + local_4d0" identifier = (binary_expression "fVar11 * fVar30 + local_4d0" (binary_expression "fVar11 * fVar30" identifier * identifier) + identifier)) ;) (expression_statement "pDVar39 = pDVar42;" (assignment_expression "pDVar39 = pDVar42" identifier = identifier) ;) }) while (parenthesized_expression "(points + (int)local_4d4 != pDVar42)" ( (binary_expression "points + (int)local_4d4 != pDVar42" (binary_expression "points + (int)local_4d4" identifier + (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) ;) }))) (goto_statement "goto LAB_001ed457;" goto statement_identifier ;) })) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xbb14d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) ))))) ;) (expression_statement "local_4dc = -NAN;" (assignment_expression "local_4dc = -NAN" identifier = (unary_expression "-NAN" - identifier)) ;) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" identifier = number_literal) ;) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3);" (assignment_expression "uVar19 = (uint)ROUND(points[0].x * fVar2 + fVar3)" identifier = (cast_expression "(uint)ROUND(points[0].x * fVar2 + fVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(points[0].x * fVar2 + fVar3)" identifier (argument_list "(points[0].x * fVar2 + fVar3)" ( (binary_expression "points[0].x * fVar2 + fVar3" (binary_expression "points[0].x * fVar2" (field_expression "points[0].x" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier) * identifier) + identifier) ))))) ;) (if_statement "if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }" if (parenthesized_expression "(0xff < uVar19)" ( (binary_expression "0xff < uVar19" number_literal < identifier) )) (compound_statement "{\n              uVar19 = 0xff;\n            }" { (expression_statement "uVar19 = 0xff;" (assignment_expression "uVar19 = 0xff" identifier = number_literal) ;) })) (expression_statement "indices[0] = (uchar)uVar19;" (assignment_expression "indices[0] = (uchar)uVar19" (subscript_expression "indices[0]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar19" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3);" (assignment_expression "uVar23 = (uint)ROUND(points[0].y * fVar2 + fVar3)" identifier = (cast_expression "(uint)ROUND(points[0].y * fVar2 + fVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(points[0].y * fVar2 + fVar3)" identifier (argument_list "(points[0].y * fVar2 + fVar3)" ( (binary_expression "points[0].y * fVar2 + fVar3" (binary_expression "points[0].y * fVar2" (field_expression "points[0].y" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier) * identifier) + identifier) ))))) ;) (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 "indices[1] = (uchar)uVar23;" (assignment_expression "indices[1] = (uchar)uVar23" (subscript_expression "indices[1]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar23" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3);" (assignment_expression "uVar31 = (uint)ROUND(fVar2 * points[0].z + fVar3)" identifier = (cast_expression "(uint)ROUND(fVar2 * points[0].z + fVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(fVar2 * points[0].z + fVar3)" identifier (argument_list "(fVar2 * points[0].z + fVar3)" ( (binary_expression "fVar2 * points[0].z + fVar3" (binary_expression "fVar2 * points[0].z" identifier * (field_expression "points[0].z" (subscript_expression "points[0]" identifier [ number_literal ]) . field_identifier)) + identifier) ))))) ;) (if_statement "if (0xff < uVar31) {\n              uVar31 = 0xff;\n            }" if (parenthesized_expression "(0xff < uVar31)" ( (binary_expression "0xff < uVar31" number_literal < identifier) )) (compound_statement "{\n              uVar31 = 0xff;\n            }" { (expression_statement "uVar31 = 0xff;" (assignment_expression "uVar31 = 0xff" identifier = number_literal) ;) })) (expression_statement "indices[2] = (uchar)uVar31;" (assignment_expression "indices[2] = (uchar)uVar31" (subscript_expression "indices[2]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar31" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = '\0';" (assignment_expression "uVar6 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar24 = uVar19;" (assignment_expression "uVar24 = uVar19" identifier = identifier) ;) (while_statement "while( true ) {\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              iVar18 = (int)local_4e0 * 3;\n              pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);\n              pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);\n              pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];\n              if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar24 = uVar19 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }" { (expression_statement "iVar18 = (int)local_4e0 * 3;" (assignment_expression "iVar18 = (int)local_4e0 * 3" identifier = (binary_expression "(int)local_4e0 * 3" (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18);" (assignment_expression "pbVar35 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18)" identifier = (cast_expression "(byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18)" ( (binary_expression "*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6 + iVar18" (binary_expression "*(int *)(unaff_EDI + 0x1ef625) + (uVar24 & 0xff) * 6" (pointer_expression "*(int *)(unaff_EDI + 0x1ef625)" * (cast_expression "(int *)(unaff_EDI + 0x1ef625)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1ef625)" ( (binary_expression "unaff_EDI + 0x1ef625" identifier + number_literal) )))) + (binary_expression "(uVar24 & 0xff) * 6" (parenthesized_expression "(uVar24 & 0xff)" ( (binary_expression "uVar24 & 0xff" identifier & number_literal) )) * number_literal)) + identifier) )))) ;) (expression_statement "pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18);" (assignment_expression "pbVar22 = (byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18)" identifier = (cast_expression "(byte *)((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18)" ( (binary_expression "(uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar18" (binary_expression "(uVar23 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629)" (binary_expression "(uVar23 & 0xff) * 6" (parenthesized_expression "(uVar23 & 0xff)" ( (binary_expression "uVar23 & 0xff" identifier & number_literal) )) * number_literal) + (pointer_expression "*(int *)(unaff_EDI + 0x1ef629)" * (cast_expression "(int *)(unaff_EDI + 0x1ef629)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1ef629)" ( (binary_expression "unaff_EDI + 0x1ef629" identifier + number_literal) ))))) + identifier) )))) ;) (expression_statement "pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));" (assignment_expression "pbVar32 = (byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d))" identifier = (cast_expression "(byte *)(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d))" ( (binary_expression "iVar18 + (uVar31 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d)" (binary_expression "iVar18 + (uVar31 & 0xff) * 6" identifier + (binary_expression "(uVar31 & 0xff) * 6" (parenthesized_expression "(uVar31 & 0xff)" ( (binary_expression "uVar31 & 0xff" identifier & number_literal) )) * number_literal)) + (pointer_expression "*(int *)(unaff_EDI + 0x1ef62d)" * (cast_expression "(int *)(unaff_EDI + 0x1ef62d)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1ef62d)" ( (binary_expression "unaff_EDI + 0x1ef62d" identifier + number_literal) ))))) )))) ;) (expression_statement "uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2];" (assignment_expression "uVar24 = (uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2]" identifier = (binary_expression "(uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2] +\n                       (uint)pbVar35[2] * (uint)pbVar35[2]" (binary_expression "(uint)pbVar22[2] * (uint)pbVar22[2] + (uint)pbVar32[2] * (uint)pbVar32[2]" (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)pbVar32[2] * (uint)pbVar32[2]" (cast_expression "(uint)pbVar32[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar32[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar32[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar32[2]" identifier [ number_literal ])))) + (binary_expression "(uint)pbVar35[2] * (uint)pbVar35[2]" (cast_expression "(uint)pbVar35[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar35[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar35[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar35[2]" identifier [ number_literal ]))))) ;) (if_statement "if (uVar24 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }" if (parenthesized_expression "(uVar24 <= (uint)local_4dc)" ( (binary_expression "uVar24 <= (uint)local_4dc" identifier <= (cast_expression "(uint)local_4dc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                xSumwSum.x = (float)*pbVar35 / fVar2;\n                xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);\n                xSumwSum.z = (float)*pbVar32 / fVar2;\n                ___cwtmp = (float)pbVar35[1] / fVar2;\n                uVar6 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);\n                local_4dc = (float)uVar24;\n              }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xd9031)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))) ;) (expression_statement "xSumwSum.x = (float)*pbVar35 / fVar2;" (assignment_expression "xSumwSum.x = (float)*pbVar35 / fVar2" (field_expression "xSumwSum.x" identifier . field_identifier) = (binary_expression "(float)*pbVar35 / fVar2" (cast_expression "(float)*pbVar35" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar35" * identifier)) / identifier)) ;) (expression_statement "xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975);" (assignment_expression "xSumwSum.y = (float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975)" (field_expression "xSumwSum.y" identifier . field_identifier) = (binary_expression "(float)*pbVar22 / *(float *)(unaff_EDI + 0xdf975)" (cast_expression "(float)*pbVar22" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar22" * identifier)) / (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" * (cast_expression "(float *)(unaff_EDI + 0xdf975)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf975)" ( (binary_expression "unaff_EDI + 0xdf975" identifier + number_literal) )))))) ;) (expression_statement "xSumwSum.z = (float)*pbVar32 / fVar2;" (assignment_expression "xSumwSum.z = (float)*pbVar32 / fVar2" (field_expression "xSumwSum.z" identifier . field_identifier) = (binary_expression "(float)*pbVar32 / fVar2" (cast_expression "(float)*pbVar32" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar32" * identifier)) / identifier)) ;) (expression_statement "___cwtmp = (float)pbVar35[1] / fVar2;" (assignment_expression "___cwtmp = (float)pbVar35[1] / fVar2" identifier = (binary_expression "(float)pbVar35[1] / fVar2" (cast_expression "(float)pbVar35[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar35[1]" identifier [ number_literal ])) / identifier)) ;) (expression_statement "uVar6 = local_4e0._0_1_ * '\x02';" (assignment_expression "uVar6 = local_4e0._0_1_ * '\x02'" identifier = (binary_expression "local_4e0._0_1_ * '\x02'" (field_expression "local_4e0._0_1_" identifier . field_identifier) * (char_literal "'\x02'" ' escape_sequence '))) ;) (expression_statement "local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975));" (assignment_expression "local_388 = (undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975))" identifier = (cast_expression "(undefined4 *)((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975))" ( (binary_expression "(float)pbVar22[1] / *(float *)(unaff_EDI + 0xdf975)" (cast_expression "(float)pbVar22[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar22[1]" identifier [ number_literal ])) / (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" * (cast_expression "(float *)(unaff_EDI + 0xdf975)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf975)" ( (binary_expression "unaff_EDI + 0xdf975" identifier + number_literal) ))))) )))) ;) (expression_statement "local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2);" (assignment_expression "local_384 = (DDSVector3 *)((float)pbVar32[1] / fVar2)" identifier = (cast_expression "(DDSVector3 *)((float)pbVar32[1] / fVar2)" ( (type_descriptor "DDSVector3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((float)pbVar32[1] / fVar2)" ( (binary_expression "(float)pbVar32[1] / fVar2" (cast_expression "(float)pbVar32[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar32[1]" identifier [ number_literal ])) / identifier) )))) ;) (expression_statement "local_4dc = (float)uVar24;" (assignment_expression "local_4dc = (float)uVar24" identifier = (cast_expression "(float)uVar24" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (local_4e0 == 1.4013e-45) break;" if (parenthesized_expression "(local_4e0 == 1.4013e-45)" ( (binary_expression "local_4e0 == 1.4013e-45" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar24 = uVar19 & 0xff;" (assignment_expression "uVar24 = uVar19 & 0xff" identifier = (binary_expression "uVar19 & 0xff" identifier & number_literal)) ;) (expression_statement "local_4e0 = 1.4013e-45;" (assignment_expression "local_4e0 = 1.4013e-45" identifier = number_literal) ;) })) (expression_statement "puVar43 = unordered;" (assignment_expression "puVar43 = unordered" identifier = identifier) ;) (do_statement "do {\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            } while (order != puVar43);" do (compound_statement "{\n              *puVar43 = uVar6;\n              puVar43 = puVar43 + 1;\n            }" { (expression_statement "*puVar43 = uVar6;" (assignment_expression "*puVar43 = uVar6" (pointer_expression "*puVar43" * identifier) = identifier) ;) (expression_statement "puVar43 = puVar43 + 1;" (assignment_expression "puVar43 = puVar43 + 1" identifier = (binary_expression "puVar43 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(order != puVar43)" ( (binary_expression "order != puVar43" identifier != identifier) )) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            } while (iVar18 != 0x10);" do (compound_statement "{\n              while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }\n              order[iVar18] = '\x03';\n              iVar18 = iVar18 + 1;\n            }" { (while_statement "while (map[iVar18] != -1) {\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }" while (parenthesized_expression "(map[iVar18] != -1)" ( (binary_expression "map[iVar18] != -1" (subscript_expression "map[iVar18]" identifier [ identifier ]) != number_literal) )) (compound_statement "{\n                order[iVar18] = unordered[map[iVar18]];\n                iVar18 = iVar18 + 1;\n                if (iVar18 == 0x10) goto LAB_001edf11;\n              }" { (expression_statement "order[iVar18] = unordered[map[iVar18]];" (assignment_expression "order[iVar18] = unordered[map[iVar18]]" (subscript_expression "order[iVar18]" identifier [ identifier ]) = (subscript_expression "unordered[map[iVar18]]" identifier [ (subscript_expression "map[iVar18]" identifier [ identifier ]) ])) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (iVar18 == 0x10) goto LAB_001edf11;" if (parenthesized_expression "(iVar18 == 0x10)" ( (binary_expression "iVar18 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_001edf11;" goto statement_identifier ;)) })) (expression_statement "order[iVar18] = '\x03';" (assignment_expression "order[iVar18] = '\x03'" (subscript_expression "order[iVar18]" identifier [ identifier ]) = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0x10)" ( (binary_expression "iVar18 != 0x10" identifier != number_literal) )) ;) (labeled_statement "LAB_001edf11:\n            start_01.y = xSumwSum.y;" statement_identifier : (expression_statement "start_01.y = xSumwSum.y;" (assignment_expression "start_01.y = xSumwSum.y" (field_expression "start_01.y" identifier . field_identifier) = (field_expression "xSumwSum.y" identifier . field_identifier)) ;)) (expression_statement "start_01.x = xSumwSum.x;" (assignment_expression "start_01.x = xSumwSum.x" (field_expression "start_01.x" identifier . field_identifier) = (field_expression "xSumwSum.x" identifier . field_identifier)) ;) (expression_statement "start_01.z = xSumwSum.z;" (assignment_expression "start_01.z = xSumwSum.z" (field_expression "start_01.z" identifier . field_identifier) = (field_expression "xSumwSum.z" identifier . field_identifier)) ;) (expression_statement "end_01.y = (float)local_388;" (assignment_expression "end_01.y = (float)local_388" (field_expression "end_01.y" identifier . field_identifier) = (cast_expression "(float)local_388" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "end_01.x = ___cwtmp;" (assignment_expression "end_01.x = ___cwtmp" (field_expression "end_01.x" identifier . field_identifier) = identifier) ;) (expression_statement "end_01.z = (float)local_384;" (assignment_expression "end_01.z = (float)local_384" (field_expression "end_01.z" identifier . field_identifier) = (cast_expression "(float)local_384" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "WriteIndices(image_00,start_01,end_01,order);" (call_expression "WriteIndices(image_00,start_01,end_01,order)" identifier (argument_list "(image_00,start_01,end_01,order)" ( identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "sVar17 = image_00->columns;" (assignment_expression "sVar17 = image_00->columns" identifier = (field_expression "image_00->columns" identifier -> field_identifier)) ;) (expression_statement "sVar26 = image_00->rows;" (assignment_expression "sVar26 = image_00->rows" identifier = (field_expression "image_00->rows" identifier -> field_identifier)) ;) (expression_statement "uVar19 = uVar1;" (assignment_expression "uVar19 = uVar1" identifier = identifier) ;) }) while (parenthesized_expression "((int)uVar1 < (int)sVar17)" ( (binary_expression "(int)uVar1 < (int)sVar17" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "local_474 = uVar41;" (assignment_expression "local_474 = uVar41" identifier = identifier) ;) }) while (parenthesized_expression "((int)uVar41 < (int)sVar26)" ( (binary_expression "(int)uVar41 < (int)sVar26" (cast_expression "(int)uVar41" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (iVar7 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar7 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar7 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001ecea0(int param_1,undefined4 param_2)\n\n{\n  uint uVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  double dVar7;\n  float fVar8;\n  char cVar9;\n  undefined2 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  uint uVar20;\n  float *pfVar21;\n  float *pfVar22;\n  byte extraout_CL;\n  byte bVar23;\n  int iVar24;\n  byte bVar25;\n  int iVar26;\n  float fVar27;\n  byte *pbVar28;\n  uint uVar29;\n  byte bVar30;\n  byte *pbVar31;\n  byte bVar32;\n  int iVar33;\n  byte bVar34;\n  uint uVar35;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined2 in_FPUControlWord;\n  undefined8 uVar36;\n  float local_4e0;\n  float local_4dc;\n  float local_4d4;\n  float local_4d0;\n  float local_4cc;\n  float local_4c0;\n  float local_4b8;\n  float local_4b4;\n  uint local_4b0;\n  float local_4ac;\n  int local_4a8;\n  uint local_4a0;\n  uint local_474;\n  float local_44c;\n  float local_448;\n  float local_444;\n  float local_440;\n  float local_43c;\n  float local_438;\n  float local_434;\n  float local_430;\n  float local_42c;\n  float local_428;\n  float local_424;\n  float 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  undefined4 local_3d8;\n  undefined4 local_3d4;\n  undefined4 local_3d0;\n  undefined4 local_3cc;\n  undefined4 local_3c8;\n  undefined4 local_3c4;\n  undefined4 local_3c0;\n  undefined4 local_3bc;\n  undefined4 local_3b8;\n  undefined4 local_3b4;\n  undefined4 local_3b0;\n  undefined4 local_3ac;\n  undefined4 local_3a8;\n  undefined4 local_3a4;\n  undefined4 local_3a0;\n  float local_39c;\n  float local_398;\n  float local_394;\n  undefined4 local_390;\n  float local_38c;\n  undefined4 *local_388;\n  float *local_384;\n  float *local_380;\n  undefined4 *local_37c;\n  undefined4 *local_378;\n  undefined4 *local_374;\n  undefined4 *local_370;\n  float *local_36c;\n  undefined4 *local_368;\n  undefined4 *local_364;\n  undefined4 *local_360;\n  float *local_35c;\n  undefined4 local_358;\n  int local_354;\n  int local_350;\n  int local_34c;\n  int local_348;\n  int local_344;\n  uint local_340 [16];\n  float local_300 [16];\n  float local_2c0 [64];\n  float local_1c0;\n  float local_1bc;\n  float local_1b8;\n  float local_1b4;\n  float local_1b0;\n  float local_1ac;\n  float local_1a8;\n  float local_1a4;\n  float local_1a0;\n  float local_19c;\n  float local_198;\n  float local_194;\n  byte local_c0 [16];\n  byte local_b0 [16];\n  byte local_a0 [128];\n  int local_20;\n  \n  uVar36 = FUN_0004c803();\n  iVar26 = (int)((ulonglong)uVar36 >> 0x20);\n  iVar11 = (int)uVar36;\n  local_474 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar15 = *(uint *)(iVar11 + 0x1c);\n  if (0 < (int)uVar15) {\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return;\n}\n\n" (function_definition "void FUN_001ecea0(int param_1,undefined4 param_2)\n\n{\n  uint uVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  double dVar7;\n  float fVar8;\n  char cVar9;\n  undefined2 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  uint uVar20;\n  float *pfVar21;\n  float *pfVar22;\n  byte extraout_CL;\n  byte bVar23;\n  int iVar24;\n  byte bVar25;\n  int iVar26;\n  float fVar27;\n  byte *pbVar28;\n  uint uVar29;\n  byte bVar30;\n  byte *pbVar31;\n  byte bVar32;\n  int iVar33;\n  byte bVar34;\n  uint uVar35;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined2 in_FPUControlWord;\n  undefined8 uVar36;\n  float local_4e0;\n  float local_4dc;\n  float local_4d4;\n  float local_4d0;\n  float local_4cc;\n  float local_4c0;\n  float local_4b8;\n  float local_4b4;\n  uint local_4b0;\n  float local_4ac;\n  int local_4a8;\n  uint local_4a0;\n  uint local_474;\n  float local_44c;\n  float local_448;\n  float local_444;\n  float local_440;\n  float local_43c;\n  float local_438;\n  float local_434;\n  float local_430;\n  float local_42c;\n  float local_428;\n  float local_424;\n  float 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  undefined4 local_3d8;\n  undefined4 local_3d4;\n  undefined4 local_3d0;\n  undefined4 local_3cc;\n  undefined4 local_3c8;\n  undefined4 local_3c4;\n  undefined4 local_3c0;\n  undefined4 local_3bc;\n  undefined4 local_3b8;\n  undefined4 local_3b4;\n  undefined4 local_3b0;\n  undefined4 local_3ac;\n  undefined4 local_3a8;\n  undefined4 local_3a4;\n  undefined4 local_3a0;\n  float local_39c;\n  float local_398;\n  float local_394;\n  undefined4 local_390;\n  float local_38c;\n  undefined4 *local_388;\n  float *local_384;\n  float *local_380;\n  undefined4 *local_37c;\n  undefined4 *local_378;\n  undefined4 *local_374;\n  undefined4 *local_370;\n  float *local_36c;\n  undefined4 *local_368;\n  undefined4 *local_364;\n  undefined4 *local_360;\n  float *local_35c;\n  undefined4 local_358;\n  int local_354;\n  int local_350;\n  int local_34c;\n  int local_348;\n  int local_344;\n  uint local_340 [16];\n  float local_300 [16];\n  float local_2c0 [64];\n  float local_1c0;\n  float local_1bc;\n  float local_1b8;\n  float local_1b4;\n  float local_1b0;\n  float local_1ac;\n  float local_1a8;\n  float local_1a4;\n  float local_1a0;\n  float local_19c;\n  float local_198;\n  float local_194;\n  byte local_c0 [16];\n  byte local_b0 [16];\n  byte local_a0 [128];\n  int local_20;\n  \n  uVar36 = FUN_0004c803();\n  iVar26 = (int)((ulonglong)uVar36 >> 0x20);\n  iVar11 = (int)uVar36;\n  local_474 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar15 = *(uint *)(iVar11 + 0x1c);\n  if (0 < (int)uVar15) {\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001ecea0(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  double dVar7;\n  float fVar8;\n  char cVar9;\n  undefined2 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  uint uVar20;\n  float *pfVar21;\n  float *pfVar22;\n  byte extraout_CL;\n  byte bVar23;\n  int iVar24;\n  byte bVar25;\n  int iVar26;\n  float fVar27;\n  byte *pbVar28;\n  uint uVar29;\n  byte bVar30;\n  byte *pbVar31;\n  byte bVar32;\n  int iVar33;\n  byte bVar34;\n  uint uVar35;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined2 in_FPUControlWord;\n  undefined8 uVar36;\n  float local_4e0;\n  float local_4dc;\n  float local_4d4;\n  float local_4d0;\n  float local_4cc;\n  float local_4c0;\n  float local_4b8;\n  float local_4b4;\n  uint local_4b0;\n  float local_4ac;\n  int local_4a8;\n  uint local_4a0;\n  uint local_474;\n  float local_44c;\n  float local_448;\n  float local_444;\n  float local_440;\n  float local_43c;\n  float local_438;\n  float local_434;\n  float local_430;\n  float local_42c;\n  float local_428;\n  float local_424;\n  float 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  undefined4 local_3d8;\n  undefined4 local_3d4;\n  undefined4 local_3d0;\n  undefined4 local_3cc;\n  undefined4 local_3c8;\n  undefined4 local_3c4;\n  undefined4 local_3c0;\n  undefined4 local_3bc;\n  undefined4 local_3b8;\n  undefined4 local_3b4;\n  undefined4 local_3b0;\n  undefined4 local_3ac;\n  undefined4 local_3a8;\n  undefined4 local_3a4;\n  undefined4 local_3a0;\n  float local_39c;\n  float local_398;\n  float local_394;\n  undefined4 local_390;\n  float local_38c;\n  undefined4 *local_388;\n  float *local_384;\n  float *local_380;\n  undefined4 *local_37c;\n  undefined4 *local_378;\n  undefined4 *local_374;\n  undefined4 *local_370;\n  float *local_36c;\n  undefined4 *local_368;\n  undefined4 *local_364;\n  undefined4 *local_360;\n  float *local_35c;\n  undefined4 local_358;\n  int local_354;\n  int local_350;\n  int local_34c;\n  int local_348;\n  int local_344;\n  uint local_340 [16];\n  float local_300 [16];\n  float local_2c0 [64];\n  float local_1c0;\n  float local_1bc;\n  float local_1b8;\n  float local_1b4;\n  float local_1b0;\n  float local_1ac;\n  float local_1a8;\n  float local_1a4;\n  float local_1a0;\n  float local_19c;\n  float local_198;\n  float local_194;\n  byte local_c0 [16];\n  byte local_b0 [16];\n  byte local_a0 [128];\n  int local_20;\n  \n  uVar36 = FUN_0004c803();\n  iVar26 = (int)((ulonglong)uVar36 >> 0x20);\n  iVar11 = (int)uVar36;\n  local_474 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar15 = *(uint *)(iVar11 + 0x1c);\n  if (0 < (int)uVar15) {\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "float fVar2;" primitive_type identifier ;) (declaration "float fVar3;" primitive_type identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "float fVar5;" primitive_type identifier ;) (declaration "float fVar6;" primitive_type identifier ;) (declaration "double dVar7;" primitive_type identifier ;) (declaration "float fVar8;" primitive_type identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "undefined2 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "float *pfVar21;" primitive_type (pointer_declarator "*pfVar21" * identifier) ;) (declaration "float *pfVar22;" primitive_type (pointer_declarator "*pfVar22" * identifier) ;) (declaration "byte extraout_CL;" type_identifier identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "float fVar27;" primitive_type identifier ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "byte bVar30;" type_identifier identifier ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "byte bVar32;" type_identifier identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "byte bVar34;" type_identifier identifier ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined2 in_FPUControlWord;" type_identifier identifier ;) (declaration "undefined8 uVar36;" type_identifier identifier ;) (declaration "float local_4e0;" primitive_type identifier ;) (declaration "float local_4dc;" primitive_type identifier ;) (declaration "float local_4d4;" primitive_type identifier ;) (declaration "float local_4d0;" primitive_type identifier ;) (declaration "float local_4cc;" primitive_type identifier ;) (declaration "float local_4c0;" primitive_type identifier ;) (declaration "float local_4b8;" primitive_type identifier ;) (declaration "float local_4b4;" primitive_type identifier ;) (declaration "uint local_4b0;" type_identifier identifier ;) (declaration "float local_4ac;" primitive_type identifier ;) (declaration "int local_4a8;" primitive_type identifier ;) (declaration "uint local_4a0;" type_identifier identifier ;) (declaration "uint local_474;" type_identifier identifier ;) (declaration "float local_44c;" primitive_type identifier ;) (declaration "float local_448;" primitive_type identifier ;) (declaration "float local_444;" primitive_type identifier ;) (declaration "float local_440;" primitive_type identifier ;) (declaration "float local_43c;" primitive_type identifier ;) (declaration "float local_438;" primitive_type identifier ;) (declaration "float local_434;" primitive_type identifier ;) (declaration "float local_430;" primitive_type identifier ;) (declaration "float local_42c;" primitive_type identifier ;) (declaration "float local_428;" primitive_type identifier ;) (declaration "float local_424;" primitive_type identifier ;) (declaration "float local_420;" primitive_type 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 "undefined4 local_3d8;" type_identifier identifier ;) (declaration "undefined4 local_3d4;" type_identifier identifier ;) (declaration "undefined4 local_3d0;" type_identifier identifier ;) (declaration "undefined4 local_3cc;" type_identifier identifier ;) (declaration "undefined4 local_3c8;" type_identifier identifier ;) (declaration "undefined4 local_3c4;" type_identifier identifier ;) (declaration "undefined4 local_3c0;" type_identifier identifier ;) (declaration "undefined4 local_3bc;" type_identifier identifier ;) (declaration "undefined4 local_3b8;" type_identifier identifier ;) (declaration "undefined4 local_3b4;" type_identifier identifier ;) (declaration "undefined4 local_3b0;" type_identifier identifier ;) (declaration "undefined4 local_3ac;" type_identifier identifier ;) (declaration "undefined4 local_3a8;" type_identifier identifier ;) (declaration "undefined4 local_3a4;" type_identifier identifier ;) (declaration "undefined4 local_3a0;" type_identifier identifier ;) (declaration "float local_39c;" primitive_type identifier ;) (declaration "float local_398;" primitive_type identifier ;) (declaration "float local_394;" primitive_type identifier ;) (declaration "undefined4 local_390;" type_identifier identifier ;) (declaration "float local_38c;" primitive_type identifier ;) (declaration "undefined4 *local_388;" type_identifier (pointer_declarator "*local_388" * identifier) ;) (declaration "float *local_384;" primitive_type (pointer_declarator "*local_384" * identifier) ;) (declaration "float *local_380;" primitive_type (pointer_declarator "*local_380" * identifier) ;) (declaration "undefined4 *local_37c;" type_identifier (pointer_declarator "*local_37c" * identifier) ;) (declaration "undefined4 *local_378;" type_identifier (pointer_declarator "*local_378" * identifier) ;) (declaration "undefined4 *local_374;" type_identifier (pointer_declarator "*local_374" * identifier) ;) (declaration "undefined4 *local_370;" type_identifier (pointer_declarator "*local_370" * identifier) ;) (declaration "float *local_36c;" primitive_type (pointer_declarator "*local_36c" * identifier) ;) (declaration "undefined4 *local_368;" type_identifier (pointer_declarator "*local_368" * identifier) ;) (declaration "undefined4 *local_364;" type_identifier (pointer_declarator "*local_364" * identifier) ;) (declaration "undefined4 *local_360;" type_identifier (pointer_declarator "*local_360" * identifier) ;) (declaration "float *local_35c;" primitive_type (pointer_declarator "*local_35c" * identifier) ;) (declaration "undefined4 local_358;" type_identifier identifier ;) (declaration "int local_354;" primitive_type identifier ;) (declaration "int local_350;" primitive_type identifier ;) (declaration "int local_34c;" primitive_type identifier ;) (declaration "int local_348;" primitive_type identifier ;) (declaration "int local_344;" primitive_type identifier ;) (declaration "uint local_340 [16];" type_identifier (array_declarator "local_340 [16]" identifier [ number_literal ]) ;) (declaration "float local_300 [16];" primitive_type (array_declarator "local_300 [16]" identifier [ number_literal ]) ;) (declaration "float local_2c0 [64];" primitive_type (array_declarator "local_2c0 [64]" identifier [ number_literal ]) ;) (declaration "float local_1c0;" primitive_type identifier ;) (declaration "float local_1bc;" primitive_type identifier ;) (declaration "float local_1b8;" primitive_type identifier ;) (declaration "float local_1b4;" primitive_type identifier ;) (declaration "float local_1b0;" primitive_type identifier ;) (declaration "float local_1ac;" primitive_type identifier ;) (declaration "float local_1a8;" primitive_type identifier ;) (declaration "float local_1a4;" primitive_type identifier ;) (declaration "float local_1a0;" primitive_type identifier ;) (declaration "float local_19c;" primitive_type identifier ;) (declaration "float local_198;" primitive_type identifier ;) (declaration "float local_194;" primitive_type identifier ;) (declaration "byte local_c0 [16];" type_identifier (array_declarator "local_c0 [16]" identifier [ number_literal ]) ;) (declaration "byte local_b0 [16];" type_identifier (array_declarator "local_b0 [16]" identifier [ number_literal ]) ;) (declaration "byte local_a0 [128];" type_identifier (array_declarator "local_a0 [128]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar36 = FUN_0004c803();" (assignment_expression "uVar36 = FUN_0004c803()" identifier = (call_expression "FUN_0004c803()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar26 = (int)((ulonglong)uVar36 >> 0x20);" (assignment_expression "iVar26 = (int)((ulonglong)uVar36 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar36 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar36 >> 0x20)" ( (binary_expression "(ulonglong)uVar36 >> 0x20" (cast_expression "(ulonglong)uVar36" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar11 = (int)uVar36;" (assignment_expression "iVar11 = (int)uVar36" identifier = (cast_expression "(int)uVar36" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_474 = 0;" (assignment_expression "local_474 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(uint *)(iVar11 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(iVar11 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x1c)" * (cast_expression "(uint *)(iVar11 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (0 < (int)uVar15) {\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }" if (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }" { (do_statement "do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);" do (compound_statement "{\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    }" { (expression_statement "uVar19 = *(uint *)(iVar11 + 0x18);" (assignment_expression "uVar19 = *(uint *)(iVar11 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x18)" * (cast_expression "(uint *)(iVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar35 = local_474 + 4;" (assignment_expression "uVar35 = local_474 + 4" identifier = (binary_expression "local_474 + 4" identifier + number_literal)) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }" if (parenthesized_expression "(0 < (int)uVar19)" ( (binary_expression "0 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }" { (do_statement "do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);" do (compound_statement "{\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        }" { (expression_statement "uVar1 = uVar29 + 4;" (assignment_expression "uVar1 = uVar29 + 4" identifier = (binary_expression "uVar29 + 4" identifier + number_literal)) ;) (expression_statement "iVar24 = uVar19 - uVar29;" (assignment_expression "iVar24 = uVar19 - uVar29" identifier = (binary_expression "uVar19 - uVar29" identifier - identifier)) ;) (if_statement "if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }" if (parenthesized_expression "(uVar1 < uVar19)" ( (binary_expression "uVar1 < uVar19" identifier < identifier) )) (compound_statement "{\n            iVar24 = 4;\n          }" { (expression_statement "iVar24 = 4;" (assignment_expression "iVar24 = 4" identifier = number_literal) ;) })) (expression_statement "iVar12 = uVar15 - local_474;" (assignment_expression "iVar12 = uVar15 - local_474" identifier = (binary_expression "uVar15 - local_474" identifier - identifier)) ;) (if_statement "if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }" if (parenthesized_expression "(uVar35 < uVar15)" ( (binary_expression "uVar35 < uVar15" identifier < identifier) )) (compound_statement "{\n            iVar12 = 4;\n          }" { (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) })) (expression_statement "local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);" (assignment_expression "local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2)" identifier = (call_expression "GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2)" identifier (argument_list "(iVar11,uVar29,local_474,iVar24,iVar12,param_2)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }" if (parenthesized_expression "(local_4a8 == 0)" ( (binary_expression "local_4a8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }" { (expression_statement "uVar15 = *(uint *)(iVar11 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(iVar11 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x1c)" * (cast_expression "(uint *)(iVar11 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);" do (compound_statement "{\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          }" { (expression_statement "local_300[iVar13] = -NAN;" (assignment_expression "local_300[iVar13] = -NAN" (subscript_expression "local_300[iVar13]" identifier [ identifier ]) = (unary_expression "-NAN" - identifier)) ;) (expression_statement "local_340[iVar13] = 0xffffffff;" (assignment_expression "local_340[iVar13] = 0xffffffff" (subscript_expression "local_340[iVar13]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != 0x10)" ( (binary_expression "iVar13 != 0x10" identifier != number_literal) )) ;) (if_statement "if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }" if (parenthesized_expression "(iVar12 < 1)" ( (binary_expression "iVar12 < 1" identifier < number_literal) )) (compound_statement "{\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }" { (if_statement "if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }" if (parenthesized_expression "(iVar26 == 0x35545844)" ( (binary_expression "iVar26 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }" { (expression_statement "local_4d4 = 0.0;" (assignment_expression "local_4d4 = 0.0" identifier = number_literal) ;) (expression_statement "local_4b0 = 0xff;" (assignment_expression "local_4b0 = 0xff" identifier = number_literal) ;) (expression_statement "local_4b8 = 0.0;" (assignment_expression "local_4b8 = 0.0" identifier = number_literal) ;) (expression_statement "local_4a0 = 5;" (assignment_expression "local_4a0 = 5" identifier = number_literal) ;) (expression_statement "local_4ac = 0.0;" (assignment_expression "local_4ac = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_001ee710;" goto statement_identifier ;) })) (expression_statement "local_4d4 = 0.0;" (assignment_expression "local_4d4 = 0.0" identifier = number_literal) ;) (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" identifier = number_literal) ;) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" identifier = number_literal) ;) (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) (expression_statement "fVar3 = local_4c0;" (assignment_expression "fVar3 = local_4c0" identifier = identifier) ;) (labeled_statement "LAB_001ed457:\n            local_4c0 = fVar3;" statement_identifier : (expression_statement "local_4c0 = fVar3;" (assignment_expression "local_4c0 = fVar3" identifier = identifier) ;)) (expression_statement "local_438 = 0.0;" (assignment_expression "local_438 = 0.0" identifier = number_literal) ;) (expression_statement "local_43c = 0.0;" (assignment_expression "local_43c = 0.0" identifier = number_literal) ;) (expression_statement "local_440 = 0.0;" (assignment_expression "local_440 = 0.0" identifier = number_literal) ;) (expression_statement "local_444 = 0.0;" (assignment_expression "local_444 = 0.0" identifier = number_literal) ;) (expression_statement "local_448 = 0.0;" (assignment_expression "local_448 = 0.0" identifier = number_literal) ;) (expression_statement "local_44c = 0.0;" (assignment_expression "local_44c = 0.0" identifier = number_literal) ;) (expression_statement "fVar6 = 1.0;" (assignment_expression "fVar6 = 1.0" identifier = number_literal) ;) (expression_statement "iVar24 = 8;" (assignment_expression "iVar24 = 8" identifier = number_literal) ;) (expression_statement "fVar3 = 1.0;" (assignment_expression "fVar3 = 1.0" identifier = number_literal) ;) (expression_statement "fVar4 = 1.0;" (assignment_expression "fVar4 = 1.0" identifier = number_literal) ;) (do_statement "do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);" do (compound_statement "{\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            }" { (expression_statement "fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;" (assignment_expression "fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4" identifier = (binary_expression "local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4" (binary_expression "local_4dc * fVar6 + fVar2 * fVar3" (binary_expression "local_4dc * fVar6" identifier * identifier) + (binary_expression "fVar2 * fVar3" identifier * identifier)) + (binary_expression "local_4cc * fVar4" identifier * identifier))) ;) (expression_statement "fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;" (assignment_expression "fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4" identifier = (binary_expression "local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4" (binary_expression "local_4e0 * fVar6 + local_4c0 * fVar3" (binary_expression "local_4e0 * fVar6" identifier * identifier) + (binary_expression "local_4c0 * fVar3" identifier * identifier)) + (binary_expression "fVar2 * fVar4" identifier * identifier))) ;) (expression_statement "fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;" (assignment_expression "fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc" identifier = (binary_expression "fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc" (binary_expression "fVar6 * local_4d0 + fVar3 * local_4e0" (binary_expression "fVar6 * local_4d0" identifier * identifier) + (binary_expression "fVar3 * local_4e0" identifier * identifier)) + (binary_expression "fVar4 * local_4dc" identifier * identifier))) ;) (expression_statement "fVar3 = fVar5;" (assignment_expression "fVar3 = fVar5" identifier = identifier) ;) (if_statement "if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }" if (parenthesized_expression "(fVar5 <= fVar27 || fVar27 != fVar5)" ( (binary_expression "fVar5 <= fVar27 || fVar27 != fVar5" (binary_expression "fVar5 <= fVar27" identifier <= identifier) || (binary_expression "fVar27 != fVar5" identifier != identifier)) )) (compound_statement "{\n                fVar3 = fVar27;\n              }" { (expression_statement "fVar3 = fVar27;" (assignment_expression "fVar3 = fVar27" identifier = identifier) ;) })) (expression_statement "fVar4 = fVar8;" (assignment_expression "fVar4 = fVar8" identifier = identifier) ;) (if_statement "if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }" if (parenthesized_expression "(fVar8 <= fVar3)" ( (binary_expression "fVar8 <= fVar3" identifier <= identifier) )) (compound_statement "{\n                fVar4 = fVar3;\n              }" { (expression_statement "fVar4 = fVar3;" (assignment_expression "fVar4 = fVar3" identifier = identifier) ;) })) (if_statement "if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }" if (parenthesized_expression "(fVar4 < 0.0)" ( (binary_expression "fVar4 < 0.0" identifier < number_literal) )) (compound_statement "{\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }" { (expression_statement "fVar3 = -fVar4;" (assignment_expression "fVar3 = -fVar4" identifier = (unary_expression "-fVar4" - identifier)) ;) (expression_statement "fVar6 = -1.0;" (assignment_expression "fVar6 = -1.0" identifier = number_literal) ;) }) (else_clause "else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }" else (compound_statement "{\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }" { (expression_statement "fVar6 = 1.0;" (assignment_expression "fVar6 = 1.0" identifier = number_literal) ;) (expression_statement "fVar3 = fVar4;" (assignment_expression "fVar3 = fVar4" identifier = identifier) ;) }))) (if_statement "if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }" if (parenthesized_expression "((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3)" ( (binary_expression "(float)*(double *)(unaff_EDI + 0xb2291) <= fVar3" (cast_expression "(float)*(double *)(unaff_EDI + 0xb2291)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(unaff_EDI + 0xb2291)" * (cast_expression "(double *)(unaff_EDI + 0xb2291)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb2291)" ( (binary_expression "unaff_EDI + 0xb2291" identifier + number_literal) ))))) <= identifier) )) (compound_statement "{\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }" { (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4" identifier = (binary_expression "*(float *)(unaff_EDI + 0xb2871) / fVar4" (pointer_expression "*(float *)(unaff_EDI + 0xb2871)" * (cast_expression "(float *)(unaff_EDI + 0xb2871)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb2871)" ( (binary_expression "unaff_EDI + 0xb2871" identifier + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }" else (compound_statement "{\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }" { (expression_statement "fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);" (assignment_expression "fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291)" identifier = (binary_expression "fVar6 / (float)*(double *)(unaff_EDI + 0xb2291)" identifier / (cast_expression "(float)*(double *)(unaff_EDI + 0xb2291)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(unaff_EDI + 0xb2291)" * (cast_expression "(double *)(unaff_EDI + 0xb2291)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb2291)" ( (binary_expression "unaff_EDI + 0xb2291" identifier + number_literal) ))))))) ;) }))) (expression_statement "iVar24 = iVar24 + -1;" (assignment_expression "iVar24 = iVar24 + -1" identifier = (binary_expression "iVar24 + -1" identifier + number_literal)) ;) (expression_statement "fVar4 = fVar8 * fVar6;" (assignment_expression "fVar4 = fVar8 * fVar6" identifier = (binary_expression "fVar8 * fVar6" identifier * identifier)) ;) (expression_statement "fVar3 = fVar27 * fVar6;" (assignment_expression "fVar3 = fVar27 * fVar6" identifier = (binary_expression "fVar27 * fVar6" identifier * identifier)) ;) (expression_statement "fVar6 = fVar6 * fVar5;" (assignment_expression "fVar6 = fVar6 * fVar5" identifier = (binary_expression "fVar6 * fVar5" identifier * identifier)) ;) }) while (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) ;) (expression_statement "bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;" (assignment_expression "bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0" identifier = (binary_expression "(extraout_CL ^ 1) & 1 | local_4d4 == 0.0" (binary_expression "(extraout_CL ^ 1) & 1" (parenthesized_expression "(extraout_CL ^ 1)" ( (binary_expression "extraout_CL ^ 1" identifier ^ number_literal) )) & number_literal) | (binary_expression "local_4d4 == 0.0" identifier == number_literal))) ;) (if_statement "if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }" if (parenthesized_expression "(bVar25 == 0)" ( (binary_expression "bVar25 == 0" identifier == number_literal) )) (compound_statement "{\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }" { (expression_statement "local_3d0 = 0x3de38e39;" (assignment_expression "local_3d0 = 0x3de38e39" identifier = number_literal) ;) (expression_statement "local_41c = 0x3f800000;" (assignment_expression "local_41c = 0x3f800000" identifier = number_literal) ;) (expression_statement "local_418 = 0x3f800000;" (assignment_expression "local_418 = 0x3f800000" identifier = number_literal) ;) (expression_statement "local_414 = 0x3f800000;" (assignment_expression "local_414 = 0x3f800000" identifier = number_literal) ;) (expression_statement "local_410 = 0x3f800000;" (assignment_expression "local_410 = 0x3f800000" identifier = number_literal) ;) (expression_statement "local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);" (assignment_expression "local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xb227d)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xb227d)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (expression_statement "local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);" (assignment_expression "local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xbdd29)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xbdd29)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbdd29)" ( (binary_expression "unaff_EDI + 0xbdd29" identifier + number_literal) ))))) ;) (expression_statement "local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);" (assignment_expression "local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xec3b9)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xec3b9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b9)" ( (binary_expression "unaff_EDI + 0xec3b9" identifier + number_literal) ))))) ;) (expression_statement "local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);" (assignment_expression "local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xec3b5)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xec3b5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b5)" ( (binary_expression "unaff_EDI + 0xec3b5" identifier + number_literal) ))))) ;) (expression_statement "local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);" (assignment_expression "local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xec3bd)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xec3bd)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3bd)" ( (binary_expression "unaff_EDI + 0xec3bd" identifier + number_literal) ))))) ;) (expression_statement "local_3a0 = 0x3ee38e39;" (assignment_expression "local_3a0 = 0x3ee38e39" identifier = number_literal) ;) (expression_statement "local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);" (assignment_expression "local_40c = *(undefined4 *)(unaff_EDI + 0xd9031)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xd9031)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xd9031)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))) ;) (expression_statement "local_400 = 0;" (assignment_expression "local_400 = 0" identifier = number_literal) ;) (expression_statement "local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad)" identifier = (pointer_expression "*(undefined4 *)(unaff_EDI + 0xec3ad)" * (cast_expression "(undefined4 *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) ))))) ;) (expression_statement "local_3f0 = 0;" (assignment_expression "local_3f0 = 0" identifier = number_literal) ;) (expression_statement "local_39c = 0.0;" (assignment_expression "local_39c = 0.0" identifier = number_literal) ;) (expression_statement "local_398 = 0.0;" (assignment_expression "local_398 = 0.0" identifier = number_literal) ;) (expression_statement "local_394 = 0.0;" (assignment_expression "local_394 = 0.0" identifier = number_literal) ;) (expression_statement "local_390 = 0;" (assignment_expression "local_390 = 0" identifier = number_literal) ;) (expression_statement "local_408 = 0x427c0000;" (assignment_expression "local_408 = 0x427c0000" identifier = number_literal) ;) (expression_statement "local_3f8 = 0x3c820821;" (assignment_expression "local_3f8 = 0x3c820821" identifier = number_literal) ;) (expression_statement "local_434 = fVar4;" (assignment_expression "local_434 = fVar4" identifier = identifier) ;) (expression_statement "local_430 = fVar3;" (assignment_expression "local_430 = fVar3" identifier = identifier) ;) (expression_statement "local_42c = fVar6;" (assignment_expression "local_42c = fVar6" identifier = identifier) ;) (expression_statement "local_404 = local_40c;" (assignment_expression "local_404 = local_40c" identifier = identifier) ;) (expression_statement "local_3f4 = local_3fc;" (assignment_expression "local_3f4 = local_3fc" identifier = identifier) ;) (expression_statement "local_3e8 = local_3ec;" (assignment_expression "local_3e8 = local_3ec" identifier = identifier) ;) (expression_statement "local_3e4 = local_3ec;" (assignment_expression "local_3e4 = local_3ec" identifier = identifier) ;) (expression_statement "local_3e0 = local_3ec;" (assignment_expression "local_3e0 = local_3ec" identifier = identifier) ;) (expression_statement "local_3d8 = local_3dc;" (assignment_expression "local_3d8 = local_3dc" identifier = identifier) ;) (expression_statement "local_3d4 = local_3dc;" (assignment_expression "local_3d4 = local_3dc" identifier = identifier) ;) (expression_statement "local_3c8 = local_3cc;" (assignment_expression "local_3c8 = local_3cc" identifier = identifier) ;) (expression_statement "local_3c4 = local_3cc;" (assignment_expression "local_3c4 = local_3cc" identifier = identifier) ;) (expression_statement "local_3c0 = local_3cc;" (assignment_expression "local_3c0 = local_3cc" identifier = identifier) ;) (expression_statement "local_3b8 = local_3bc;" (assignment_expression "local_3b8 = local_3bc" identifier = identifier) ;) (expression_statement "local_3b4 = local_3bc;" (assignment_expression "local_3b4 = local_3bc" identifier = identifier) ;) (expression_statement "local_3b0 = local_3bc;" (assignment_expression "local_3b0 = local_3bc" identifier = identifier) ;) (expression_statement "local_3a8 = local_3ac;" (assignment_expression "local_3a8 = local_3ac" identifier = identifier) ;) (expression_statement "local_3a4 = local_3ac;" (assignment_expression "local_3a4 = local_3ac" identifier = identifier) ;) (expression_statement "FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);" (call_expression "FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0)" identifier (argument_list "(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0)" ( identifier , identifier , identifier , (pointer_expression "&local_1c0" & identifier) , (pointer_expression "&local_39c" & identifier) , identifier , number_literal ))) ;) (expression_statement "local_4c0 = *(float *)(unaff_EDI + 0xec3a1);" (assignment_expression "local_4c0 = *(float *)(unaff_EDI + 0xec3a1)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec3a1)" * (cast_expression "(float *)(unaff_EDI + 0xec3a1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3a1)" ( (binary_expression "unaff_EDI + 0xec3a1" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" identifier = number_literal) ;) (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" identifier = number_literal) ;) (do_statement "do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);" do (compound_statement "{\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              }" { (expression_statement "uVar16 = GetMagickResourceLimit(7);" (assignment_expression "uVar16 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "local_350 = (int)local_4dc;" (assignment_expression "local_350 = (int)local_4dc" identifier = (cast_expression "(int)local_4dc" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_358 = local_4c0;" (assignment_expression "local_358 = local_4c0" identifier = identifier) ;) (expression_statement "local_34c = (int)local_4d0;" (assignment_expression "local_34c = (int)local_4d0" identifier = (cast_expression "(int)local_4d0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_348 = (int)local_4cc;" (assignment_expression "local_348 = (int)local_4cc" identifier = (cast_expression "(int)local_4cc" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_38c = local_4d4;" (assignment_expression "local_38c = local_4d4" identifier = identifier) ;) (expression_statement "local_388 = &local_41c;" (assignment_expression "local_388 = &local_41c" identifier = (pointer_expression "&local_41c" & identifier)) ;) (expression_statement "local_384 = &local_440;" (assignment_expression "local_384 = &local_440" identifier = (pointer_expression "&local_440" & identifier)) ;) (expression_statement "local_380 = &local_44c;" (assignment_expression "local_380 = &local_44c" identifier = (pointer_expression "&local_44c" & identifier)) ;) (expression_statement "local_37c = &local_40c;" (assignment_expression "local_37c = &local_40c" identifier = (pointer_expression "&local_40c" & identifier)) ;) (expression_statement "local_378 = &local_3fc;" (assignment_expression "local_378 = &local_3fc" identifier = (pointer_expression "&local_3fc" & identifier)) ;) (expression_statement "local_374 = &local_3ec;" (assignment_expression "local_374 = &local_3ec" identifier = (pointer_expression "&local_3ec" & identifier)) ;) (expression_statement "local_370 = &local_3dc;" (assignment_expression "local_370 = &local_3dc" identifier = (pointer_expression "&local_3dc" & identifier)) ;) (expression_statement "local_36c = &local_1c0;" (assignment_expression "local_36c = &local_1c0" identifier = (pointer_expression "&local_1c0" & identifier)) ;) (expression_statement "local_368 = &local_3cc;" (assignment_expression "local_368 = &local_3cc" identifier = (pointer_expression "&local_3cc" & identifier)) ;) (expression_statement "local_364 = &local_3bc;" (assignment_expression "local_364 = &local_3bc" identifier = (pointer_expression "&local_3bc" & identifier)) ;) (expression_statement "local_360 = &local_3ac;" (assignment_expression "local_360 = &local_3ac" identifier = (pointer_expression "&local_3ac" & identifier)) ;) (expression_statement "local_35c = &local_39c;" (assignment_expression "local_35c = &local_39c" identifier = (pointer_expression "&local_39c" & identifier)) ;) (expression_statement "local_354 = iVar24;" (assignment_expression "local_354 = iVar24" identifier = identifier) ;) (expression_statement "local_344 = iVar12;" (assignment_expression "local_344 = iVar12" identifier = identifier) ;) (expression_statement "GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);" (call_expression "GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0)" identifier (argument_list "(unaff_EDI + -0xd87,&local_38c,uVar16,0)" ( (binary_expression "unaff_EDI + -0xd87" identifier + number_literal) , (pointer_expression "&local_38c" & identifier) , identifier , number_literal ))) ;) (expression_statement "iVar14 = local_348;" (assignment_expression "iVar14 = local_348" identifier = identifier) ;) (expression_statement "iVar33 = local_34c;" (assignment_expression "iVar33 = local_34c" identifier = identifier) ;) (expression_statement "iVar13 = local_350;" (assignment_expression "iVar13 = local_350" identifier = identifier) ;) (expression_statement "iVar24 = local_354;" (assignment_expression "iVar24 = local_354" identifier = identifier) ;) (expression_statement "local_4c0 = (float)local_358;" (assignment_expression "local_4c0 = (float)local_358" identifier = (cast_expression "(float)local_358" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_4dc = (float)local_350;" (assignment_expression "local_4dc = (float)local_350" identifier = (cast_expression "(float)local_350" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_4d0 = (float)local_34c;" (assignment_expression "local_4d0 = (float)local_34c" identifier = (cast_expression "(float)local_34c" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_4cc = (float)local_348;" (assignment_expression "local_4cc = (float)local_348" identifier = (cast_expression "(float)local_348" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (iVar12 != local_354) break;" if (parenthesized_expression "(iVar12 != local_354)" ( (binary_expression "iVar12 != local_354" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (if_statement "if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }" if (parenthesized_expression "(iVar12 == 8)" ( (binary_expression "iVar12 == 8" identifier == number_literal) )) (compound_statement "{\n                  iVar24 = 7;\n                  break;\n                }" { (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "local_428 = local_44c - local_440;" (assignment_expression "local_428 = local_44c - local_440" identifier = (binary_expression "local_44c - local_440" identifier - identifier)) ;) (expression_statement "local_424 = local_448 - local_43c;" (assignment_expression "local_424 = local_448 - local_43c" identifier = (binary_expression "local_448 - local_43c" identifier - identifier)) ;) (expression_statement "local_420 = local_444 - local_438;" (assignment_expression "local_420 = local_444 - local_438" identifier = (binary_expression "local_444 - local_438" identifier - identifier)) ;) (expression_statement "iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);" (assignment_expression "iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12)" identifier = (call_expression "FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12)" identifier (argument_list "(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12)" ( identifier , identifier , identifier , (pointer_expression "&local_1c0" & identifier) , (pointer_expression "&local_39c" & identifier) , identifier , identifier )))) ;) }) while (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) ;) (expression_statement "pbVar28 = local_a0 + iVar24 * 0x10;" (assignment_expression "pbVar28 = local_a0 + iVar24 * 0x10" identifier = (binary_expression "local_a0 + iVar24 * 0x10" identifier + (binary_expression "iVar24 * 0x10" identifier * number_literal))) ;) (if_statement "if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }" { (expression_statement "pbVar18 = pbVar28;" (assignment_expression "pbVar18 = pbVar28" identifier = identifier) ;) (do_statement "do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);" do (compound_statement "{\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                }" { (expression_statement "bVar25 = *pbVar18;" (assignment_expression "bVar25 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_b0[bVar25] = 0;" (assignment_expression "local_b0[bVar25] = 0" (subscript_expression "local_b0[bVar25]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar28 + iVar13 != pbVar18)" ( (binary_expression "pbVar28 + iVar13 != pbVar18" (binary_expression "pbVar28 + iVar13" identifier + identifier) != identifier) )) ;) })) (if_statement "if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }" if (parenthesized_expression "(iVar13 < iVar33)" ( (binary_expression "iVar13 < iVar33" identifier < identifier) )) (compound_statement "{\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }" { (expression_statement "pbVar18 = pbVar28 + iVar13;" (assignment_expression "pbVar18 = pbVar28 + iVar13" identifier = (binary_expression "pbVar28 + iVar13" identifier + identifier)) ;) (do_statement "do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);" do (compound_statement "{\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                }" { (expression_statement "bVar25 = *pbVar18;" (assignment_expression "bVar25 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_b0[bVar25] = 2;" (assignment_expression "local_b0[bVar25] = 2" (subscript_expression "local_b0[bVar25]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar28 + iVar33 != pbVar18)" ( (binary_expression "pbVar28 + iVar33 != pbVar18" (binary_expression "pbVar28 + iVar33" identifier + identifier) != identifier) )) ;) })) (if_statement "if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }" if (parenthesized_expression "(iVar33 < iVar14)" ( (binary_expression "iVar33 < iVar14" identifier < identifier) )) (compound_statement "{\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }" { (expression_statement "pbVar18 = pbVar28 + iVar33;" (assignment_expression "pbVar18 = pbVar28 + iVar33" identifier = (binary_expression "pbVar28 + iVar33" identifier + identifier)) ;) (do_statement "do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);" do (compound_statement "{\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                }" { (expression_statement "bVar25 = *pbVar18;" (assignment_expression "bVar25 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_b0[bVar25] = 3;" (assignment_expression "local_b0[bVar25] = 3" (subscript_expression "local_b0[bVar25]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar28 + iVar14 != pbVar18)" ( (binary_expression "pbVar28 + iVar14 != pbVar18" (binary_expression "pbVar28 + iVar14" identifier + identifier) != identifier) )) ;) })) (if_statement "if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }" if (parenthesized_expression "(iVar14 < (int)local_4d4)" ( (binary_expression "iVar14 < (int)local_4d4" identifier < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }" { (expression_statement "pbVar18 = pbVar28 + iVar14;" (assignment_expression "pbVar18 = pbVar28 + iVar14" identifier = (binary_expression "pbVar28 + iVar14" identifier + identifier)) ;) (do_statement "do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);" do (compound_statement "{\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                }" { (expression_statement "bVar25 = *pbVar18;" (assignment_expression "bVar25 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_b0[bVar25] = 1;" (assignment_expression "local_b0[bVar25] = 1" (subscript_expression "local_b0[bVar25]" identifier [ identifier ]) = number_literal) ;) }) while (parenthesized_expression "(pbVar28 + (int)local_4d4 != pbVar18)" ( (binary_expression "pbVar28 + (int)local_4d4 != pbVar18" (binary_expression "pbVar28 + (int)local_4d4" identifier + (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) ;) })) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);" do (compound_statement "{\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              }" { (while_statement "while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }" while (parenthesized_expression "(local_300[iVar24] != -NAN)" ( (binary_expression "local_300[iVar24] != -NAN" (subscript_expression "local_300[iVar24]" identifier [ identifier ]) != (unary_expression "-NAN" - identifier)) )) (compound_statement "{\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }" { (expression_statement "local_c0[iVar24] = local_b0[(int)local_300[iVar24]];" (assignment_expression "local_c0[iVar24] = local_b0[(int)local_300[iVar24]]" (subscript_expression "local_c0[iVar24]" identifier [ identifier ]) = (subscript_expression "local_b0[(int)local_300[iVar24]]" identifier [ (cast_expression "(int)local_300[iVar24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_300[iVar24]" identifier [ identifier ])) ])) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (if_statement "if (iVar24 == 0x10) goto LAB_001edb47;" if (parenthesized_expression "(iVar24 == 0x10)" ( (binary_expression "iVar24 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_001edb47;" goto statement_identifier ;)) })) (expression_statement "local_c0[iVar24] = 3;" (assignment_expression "local_c0[iVar24] = 3" (subscript_expression "local_c0[iVar24]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != 0x10)" ( (binary_expression "iVar24 != 0x10" identifier != number_literal) )) ;) }) (else_clause "else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }" else (compound_statement "{\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }" { (if_statement "if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }" if (parenthesized_expression "(local_4d4 == 0.0)" ( (binary_expression "local_4d4 == 0.0" identifier == number_literal) )) (compound_statement "{\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (expression_statement "local_438 = 0.0;" (assignment_expression "local_438 = 0.0" identifier = number_literal) ;) (expression_statement "local_43c = 0.0;" (assignment_expression "local_43c = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);" statement_identifier : (expression_statement "fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d)" identifier = (binary_expression "local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d)" (binary_expression "local_43c * *(float *)(unaff_EDI + 0xdf975)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" * (cast_expression "(float *)(unaff_EDI + 0xdf975)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf975)" ( (binary_expression "unaff_EDI + 0xdf975" identifier + number_literal) ))))) + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))))) ;)) (labeled_statement "LAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;" statement_identifier : (if_statement "if (local_438 < 0.0) goto LAB_001ee13a;" if (parenthesized_expression "(local_438 < 0.0)" ( (binary_expression "local_438 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_001ee13a;" goto statement_identifier ;))) (labeled_statement "LAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }" statement_identifier : (if_statement "if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }" if (parenthesized_expression "(1.0 < local_438)" ( (binary_expression "1.0 < local_438" number_literal < identifier) )) (compound_statement "{\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }" { (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xec399)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec399)" * (cast_expression "(float *)(unaff_EDI + 0xec399)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec399)" ( (binary_expression "unaff_EDI + 0xec399" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }" else (compound_statement "{\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }" { (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031)" (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))) + (binary_expression "local_438 * *(float *)(unaff_EDI + 0xd9031)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))))) ;) })))) }) (else_clause "else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }" else (compound_statement "{\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }" { (expression_statement "local_43c = local_2c0[1];" (assignment_expression "local_43c = local_2c0[1]" identifier = (subscript_expression "local_2c0[1]" identifier [ number_literal ])) ;) (expression_statement "local_438 = local_2c0[2];" (assignment_expression "local_438 = local_2c0[2]" identifier = (subscript_expression "local_2c0[2]" identifier [ number_literal ])) ;) (expression_statement "local_44c = local_2c0[0];" (assignment_expression "local_44c = local_2c0[0]" identifier = (subscript_expression "local_2c0[0]" identifier [ number_literal ])) ;) (expression_statement "local_448 = local_2c0[1];" (assignment_expression "local_448 = local_2c0[1]" identifier = (subscript_expression "local_2c0[1]" identifier [ number_literal ])) ;) (expression_statement "local_444 = local_2c0[2];" (assignment_expression "local_444 = local_2c0[2]" identifier = (subscript_expression "local_2c0[2]" identifier [ number_literal ])) ;) (expression_statement "local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];" (assignment_expression "local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0]" identifier = (binary_expression "fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0]" (binary_expression "fVar6 * local_2c0[2] + fVar3 * local_2c0[1]" (binary_expression "fVar6 * local_2c0[2]" identifier * (subscript_expression "local_2c0[2]" identifier [ number_literal ])) + (binary_expression "fVar3 * local_2c0[1]" identifier * (subscript_expression "local_2c0[1]" identifier [ number_literal ]))) + (binary_expression "fVar4 * local_2c0[0]" identifier * (subscript_expression "local_2c0[0]" identifier [ number_literal ])))) ;) (expression_statement "local_4dc = local_2c0[0];" (assignment_expression "local_4dc = local_2c0[0]" identifier = (subscript_expression "local_2c0[0]" identifier [ number_literal ])) ;) (if_statement "if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }" if (parenthesized_expression "(1 < (int)local_4d4)" ( (binary_expression "1 < (int)local_4d4" number_literal < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }" { (expression_statement "local_4b4 = local_2c0[2];" (assignment_expression "local_4b4 = local_2c0[2]" identifier = (subscript_expression "local_2c0[2]" identifier [ number_literal ])) ;) (expression_statement "bVar32 = 0;" (assignment_expression "bVar32 = 0" identifier = number_literal) ;) (expression_statement "bVar34 = 0;" (assignment_expression "bVar34 = 0" identifier = number_literal) ;) (expression_statement "local_4ac = local_2c0[1];" (assignment_expression "local_4ac = local_2c0[1]" identifier = (subscript_expression "local_2c0[1]" identifier [ number_literal ])) ;) (expression_statement "local_4b8 = local_2c0[0];" (assignment_expression "local_4b8 = local_2c0[0]" identifier = (subscript_expression "local_2c0[0]" identifier [ number_literal ])) ;) (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" identifier = identifier) ;) (expression_statement "local_4cc = local_2c0[1];" (assignment_expression "local_4cc = local_2c0[1]" identifier = (subscript_expression "local_2c0[1]" identifier [ number_literal ])) ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "local_4c0 = local_2c0[2];" (assignment_expression "local_4c0 = local_2c0[2]" identifier = (subscript_expression "local_2c0[2]" identifier [ number_literal ])) ;) (expression_statement "local_4e0 = local_4d0;" (assignment_expression "local_4e0 = local_4d0" identifier = identifier) ;) (expression_statement "bVar30 = 0;" (assignment_expression "bVar30 = 0" identifier = number_literal) ;) (do_statement "do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);" do (compound_statement "{\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  }" { (while_statement "while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }" { (expression_statement "fVar2 = pfVar21[4];" (assignment_expression "fVar2 = pfVar21[4]" identifier = (subscript_expression "pfVar21[4]" identifier [ number_literal ])) ;) (expression_statement "fVar27 = pfVar21[5];" (assignment_expression "fVar27 = pfVar21[5]" identifier = (subscript_expression "pfVar21[5]" identifier [ number_literal ])) ;) (expression_statement "fVar5 = pfVar21[6];" (assignment_expression "fVar5 = pfVar21[6]" identifier = (subscript_expression "pfVar21[6]" identifier [ number_literal ])) ;) (expression_statement "fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;" (assignment_expression "fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2" identifier = (binary_expression "fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2" (binary_expression "fVar6 * fVar5 + fVar3 * fVar27" (binary_expression "fVar6 * fVar5" identifier * identifier) + (binary_expression "fVar3 * fVar27" identifier * identifier)) + (binary_expression "fVar4 * fVar2" identifier * identifier))) ;) (if_statement "if (local_4e0 <= fVar8) break;" if (parenthesized_expression "(local_4e0 <= fVar8)" ( (binary_expression "local_4e0 <= fVar8" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "pfVar21 = pfVar21 + 4;" (assignment_expression "pfVar21 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) (expression_statement "bVar30 = bVar25;" (assignment_expression "bVar30 = bVar25" identifier = identifier) ;) (expression_statement "local_4e0 = fVar8;" (assignment_expression "local_4e0 = fVar8" identifier = identifier) ;) (expression_statement "local_4dc = fVar2;" (assignment_expression "local_4dc = fVar2" identifier = identifier) ;) (expression_statement "local_4cc = fVar27;" (assignment_expression "local_4cc = fVar27" identifier = identifier) ;) (expression_statement "local_4c0 = fVar5;" (assignment_expression "local_4c0 = fVar5" identifier = identifier) ;) (if_statement "if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;" if (parenthesized_expression "(pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4)" ( (binary_expression "pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4" identifier == (binary_expression "local_2c0 + (int)local_4d4 * 4 + -4" (binary_expression "local_2c0 + (int)local_4d4 * 4" identifier + (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) )) (goto_statement "goto LAB_001ee095;" goto statement_identifier ;)) })) (if_statement "if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }" if (parenthesized_expression "(local_4d0 < fVar8)" ( (binary_expression "local_4d0 < fVar8" identifier < identifier) )) (compound_statement "{\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }" { (expression_statement "local_4d0 = fVar8;" (assignment_expression "local_4d0 = fVar8" identifier = identifier) ;) (expression_statement "local_4b8 = fVar2;" (assignment_expression "local_4b8 = fVar2" identifier = identifier) ;) (expression_statement "local_4b4 = fVar5;" (assignment_expression "local_4b4 = fVar5" identifier = identifier) ;) (expression_statement "local_4ac = fVar27;" (assignment_expression "local_4ac = fVar27" identifier = identifier) ;) (expression_statement "bVar32 = bVar25;" (assignment_expression "bVar32 = bVar25" identifier = identifier) ;) (expression_statement "bVar34 = bVar25;" (assignment_expression "bVar34 = bVar25" identifier = identifier) ;) (expression_statement "bVar23 = bVar25;" (assignment_expression "bVar23 = bVar25" identifier = identifier) ;) })) (expression_statement "pfVar21 = pfVar21 + 4;" (assignment_expression "pfVar21 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4)" ( (binary_expression "pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4" identifier != (binary_expression "local_2c0 + (int)local_4d4 * 4 + -4" (binary_expression "local_2c0 + (int)local_4d4 * 4" identifier + (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) )) ;) (labeled_statement "LAB_001ee095:\n                  fVar2 = local_4cc;" statement_identifier : (expression_statement "fVar2 = local_4cc;" (assignment_expression "fVar2 = local_4cc" identifier = identifier) ;)) (expression_statement "fVar3 = local_4c0;" (assignment_expression "fVar3 = local_4c0" identifier = identifier) ;) (if_statement "if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }" if (parenthesized_expression "(bVar30 == 0)" ( (binary_expression "bVar30 == 0" identifier == number_literal) )) (compound_statement "{\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }" { (expression_statement "local_4dc = local_2c0[0];" (assignment_expression "local_4dc = local_2c0[0]" identifier = (subscript_expression "local_2c0[0]" identifier [ number_literal ])) ;) (expression_statement "fVar2 = local_43c;" (assignment_expression "fVar2 = local_43c" identifier = identifier) ;) (expression_statement "fVar3 = local_438;" (assignment_expression "fVar3 = local_438" identifier = identifier) ;) })) (expression_statement "local_438 = fVar3;" (assignment_expression "local_438 = fVar3" identifier = identifier) ;) (expression_statement "local_43c = fVar2;" (assignment_expression "local_43c = fVar2" identifier = identifier) ;) (if_statement "if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }" if (parenthesized_expression "(bVar34 != 0)" ( (binary_expression "bVar34 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_44c = local_4b8;\n                  }" { (expression_statement "local_44c = local_4b8;" (assignment_expression "local_44c = local_4b8" identifier = identifier) ;) })) (if_statement "if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }" if (parenthesized_expression "(bVar32 != 0)" ( (binary_expression "bVar32 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_448 = local_4ac;\n                  }" { (expression_statement "local_448 = local_4ac;" (assignment_expression "local_448 = local_4ac" identifier = identifier) ;) })) (if_statement "if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }" if (parenthesized_expression "(bVar23 != 0)" ( (binary_expression "bVar23 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_444 = local_4b4;\n                  }" { (expression_statement "local_444 = local_4b4;" (assignment_expression "local_444 = local_4b4" identifier = identifier) ;) })) })) (if_statement "if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }" if (parenthesized_expression "(0.0 <= local_4dc)" ( (binary_expression "0.0 <= local_4dc" number_literal <= identifier) )) (compound_statement "{\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }" { (if_statement "if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }" if (parenthesized_expression "(local_4dc <= 1.0)" ( (binary_expression "local_4dc <= 1.0" identifier <= number_literal) )) (compound_statement "{\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031)" (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))) + (binary_expression "local_4dc * *(float *)(unaff_EDI + 0xd9031)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))))) ;) }) (else_clause "else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }" else (compound_statement "{\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec399)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec399)" * (cast_expression "(float *)(unaff_EDI + 0xec399)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec399)" ( (binary_expression "unaff_EDI + 0xec399" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }" else (compound_statement "{\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) }))) (if_statement "if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }" if (parenthesized_expression "(0.0 <= local_43c)" ( (binary_expression "0.0 <= local_43c" number_literal <= identifier) )) (compound_statement "{\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }" { (if_statement "if (local_43c <= 1.0) goto LAB_001ee1db;" if (parenthesized_expression "(local_43c <= 1.0)" ( (binary_expression "local_43c <= 1.0" identifier <= number_literal) )) (goto_statement "goto LAB_001ee1db;" goto statement_identifier ;)) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xec39d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xec39d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec39d)" * (cast_expression "(float *)(unaff_EDI + 0xec39d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec39d)" ( (binary_expression "unaff_EDI + 0xec39d" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001ee1e7;" goto statement_identifier ;) })) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= local_438) goto LAB_001ee1f9;" if (parenthesized_expression "(0.0 <= local_438)" ( (binary_expression "0.0 <= local_438" number_literal <= identifier) )) (goto_statement "goto LAB_001ee1f9;" goto statement_identifier ;)) (labeled_statement "LAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);" statement_identifier : (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;)) }))) (expression_statement "local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" identifier = (binary_expression "ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar2)" identifier (argument_list "(fVar2)" ( identifier ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) )))))) ;) (expression_statement "local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);" (assignment_expression "local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" (pointer_expression "*(float *)(unaff_EDI + 0xec3b1)" * (cast_expression "(float *)(unaff_EDI + 0xec3b1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b1)" ( (binary_expression "unaff_EDI + 0xec3b1" identifier + number_literal) )))) * (call_expression "ROUND(fVar3)" identifier (argument_list "(fVar3)" ( identifier ))))) ;) (expression_statement "local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad)" identifier = (binary_expression "ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar6)" identifier (argument_list "(fVar6)" ( identifier ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) )))))) ;) (if_statement "if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }" if (parenthesized_expression "(local_44c < 0.0)" ( (binary_expression "local_44c < 0.0" identifier < number_literal) )) (compound_statement "{\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;" statement_identifier : (if_statement "if (0.0 <= local_448) goto LAB_001ee3ad;" if (parenthesized_expression "(0.0 <= local_448)" ( (binary_expression "0.0 <= local_448" number_literal <= identifier) )) (goto_statement "goto LAB_001ee3ad;" goto statement_identifier ;))) (labeled_statement "LAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);" statement_identifier : (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;" statement_identifier : (if_statement "if (0.0 <= local_444) goto LAB_001ee3d4;" if (parenthesized_expression "(0.0 <= local_444)" ( (binary_expression "0.0 <= local_444" number_literal <= identifier) )) (goto_statement "goto LAB_001ee3d4;" goto statement_identifier ;))) (labeled_statement "LAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);" statement_identifier : (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }" else (compound_statement "{\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }" { (if_statement "if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }" if (parenthesized_expression "(1.0 < local_44c)" ( (binary_expression "1.0 < local_44c" number_literal < identifier) )) (compound_statement "{\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec399)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec399)" * (cast_expression "(float *)(unaff_EDI + 0xec399)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec399)" ( (binary_expression "unaff_EDI + 0xec399" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001ee39c;" goto statement_identifier ;) })) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031)" (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))) + (binary_expression "local_44c * *(float *)(unaff_EDI + 0xd9031)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))))) ;) (if_statement "if (local_448 < 0.0) goto LAB_001ee81d;" if (parenthesized_expression "(local_448 < 0.0)" ( (binary_expression "local_448 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_001ee81d;" goto statement_identifier ;)) (labeled_statement "LAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }" statement_identifier : (if_statement "if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }" if (parenthesized_expression "(1.0 < local_448)" ( (binary_expression "1.0 < local_448" number_literal < identifier) )) (compound_statement "{\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }" { (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xec39d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xec39d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec39d)" * (cast_expression "(float *)(unaff_EDI + 0xec39d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec39d)" ( (binary_expression "unaff_EDI + 0xec39d" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001ee3c3;" goto statement_identifier ;) }))) (expression_statement "fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d)" identifier = (binary_expression "local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d)" (binary_expression "local_448 * *(float *)(unaff_EDI + 0xdf975)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" * (cast_expression "(float *)(unaff_EDI + 0xdf975)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf975)" ( (binary_expression "unaff_EDI + 0xdf975" identifier + number_literal) ))))) + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))))) ;) (if_statement "if (local_444 < 0.0) goto LAB_001ee7e9;" if (parenthesized_expression "(local_444 < 0.0)" ( (binary_expression "local_444 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_001ee7e9;" goto statement_identifier ;)) (labeled_statement "LAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }" statement_identifier : (if_statement "if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }" if (parenthesized_expression "(1.0 < local_444)" ( (binary_expression "1.0 < local_444" number_literal < identifier) )) (compound_statement "{\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }" { (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xec399)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec399)" * (cast_expression "(float *)(unaff_EDI + 0xec399)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec399)" ( (binary_expression "unaff_EDI + 0xec399" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }" else (compound_statement "{\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }" { (expression_statement "fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d)" identifier = (binary_expression "local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d)" (binary_expression "local_444 * *(float *)(unaff_EDI + 0xd9031)" identifier * (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))) + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))))) ;) })))) }))) (expression_statement "uVar10 = (undefined2)((uint)local_38c >> 0x10);" (assignment_expression "uVar10 = (undefined2)((uint)local_38c >> 0x10)" identifier = (call_expression "(undefined2)((uint)local_38c >> 0x10)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "((uint)local_38c >> 0x10)" ( (binary_expression "(uint)local_38c >> 0x10" (cast_expression "(uint)local_38c" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }" if (parenthesized_expression "(fVar6 <= 0.0)" ( (binary_expression "fVar6 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }" { (expression_statement "local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);" (assignment_expression "local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800)" identifier = (cast_expression "(float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800)" ( (binary_expression "CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800" (binary_expression "CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff" (call_expression "CONCAT22(uVar10,in_FPUControlWord)" identifier (argument_list "(uVar10,in_FPUControlWord)" ( identifier , identifier ))) & number_literal) | number_literal) )))) ;) }) (else_clause "else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }" else (compound_statement "{\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }" { (expression_statement "local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);" (assignment_expression "local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400)" identifier = (cast_expression "(float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400)" ( (binary_expression "CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400" (binary_expression "CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff" (call_expression "CONCAT22(uVar10,in_FPUControlWord)" identifier (argument_list "(uVar10,in_FPUControlWord)" ( identifier , identifier ))) & number_literal) | number_literal) )))) ;) }))) (expression_statement "local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);" (assignment_expression "local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord)" identifier = (cast_expression "(float)CONCAT22(local_39c._2_2_,in_FPUControlWord)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT22(local_39c._2_2_,in_FPUControlWord)" identifier (argument_list "(local_39c._2_2_,in_FPUControlWord)" ( (field_expression "local_39c._2_2_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" identifier = (binary_expression "ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar2)" identifier (argument_list "(fVar2)" ( identifier ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) )))))) ;) (expression_statement "local_1c0 = local_440;" (assignment_expression "local_1c0 = local_440" identifier = identifier) ;) (expression_statement "local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);" (assignment_expression "local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" identifier = (binary_expression "*(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" (pointer_expression "*(float *)(unaff_EDI + 0xec3b1)" * (cast_expression "(float *)(unaff_EDI + 0xec3b1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b1)" ( (binary_expression "unaff_EDI + 0xec3b1" identifier + number_literal) )))) * (call_expression "ROUND(fVar3)" identifier (argument_list "(fVar3)" ( identifier ))))) ;) (expression_statement "local_1bc = local_43c;" (assignment_expression "local_1bc = local_43c" identifier = identifier) ;) (expression_statement "local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad)" identifier = (binary_expression "ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar6)" identifier (argument_list "(fVar6)" ( identifier ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" * (cast_expression "(float *)(unaff_EDI + 0xec3ad)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3ad)" ( (binary_expression "unaff_EDI + 0xec3ad" identifier + number_literal) )))))) ;) (expression_statement "local_1b8 = local_438;" (assignment_expression "local_1b8 = local_438" identifier = identifier) ;) (expression_statement "local_1b4 = local_44c;" (assignment_expression "local_1b4 = local_44c" identifier = identifier) ;) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec3b5);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec3b5)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec3b5)" * (cast_expression "(float *)(unaff_EDI + 0xec3b5)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b5)" ( (binary_expression "unaff_EDI + 0xec3b5" identifier + number_literal) ))))) ;) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xec3b9);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xec3b9)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec3b9)" * (cast_expression "(float *)(unaff_EDI + 0xec3b9)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3b9)" ( (binary_expression "unaff_EDI + 0xec3b9" identifier + number_literal) ))))) ;) (expression_statement "local_1b0 = local_448;" (assignment_expression "local_1b0 = local_448" identifier = identifier) ;) (expression_statement "local_1ac = local_444;" (assignment_expression "local_1ac = local_444" identifier = identifier) ;) (expression_statement "local_1a8 = local_44c * fVar3 + local_440 * fVar2;" (assignment_expression "local_1a8 = local_44c * fVar3 + local_440 * fVar2" identifier = (binary_expression "local_44c * fVar3 + local_440 * fVar2" (binary_expression "local_44c * fVar3" identifier * identifier) + (binary_expression "local_440 * fVar2" identifier * identifier))) ;) (expression_statement "local_1a4 = local_448 * fVar3 + local_43c * fVar2;" (assignment_expression "local_1a4 = local_448 * fVar3 + local_43c * fVar2" identifier = (binary_expression "local_448 * fVar3 + local_43c * fVar2" (binary_expression "local_448 * fVar3" identifier * identifier) + (binary_expression "local_43c * fVar2" identifier * identifier))) ;) (expression_statement "local_1a0 = local_444 * fVar3 + local_438 * fVar2;" (assignment_expression "local_1a0 = local_444 * fVar3 + local_438 * fVar2" identifier = (binary_expression "local_444 * fVar3 + local_438 * fVar2" (binary_expression "local_444 * fVar3" identifier * identifier) + (binary_expression "local_438 * fVar2" identifier * identifier))) ;) (expression_statement "local_19c = local_44c * fVar2 + local_440 * fVar3;" (assignment_expression "local_19c = local_44c * fVar2 + local_440 * fVar3" identifier = (binary_expression "local_44c * fVar2 + local_440 * fVar3" (binary_expression "local_44c * fVar2" identifier * identifier) + (binary_expression "local_440 * fVar3" identifier * identifier))) ;) (expression_statement "local_198 = local_448 * fVar2 + local_43c * fVar3;" (assignment_expression "local_198 = local_448 * fVar2 + local_43c * fVar3" identifier = (binary_expression "local_448 * fVar2 + local_43c * fVar3" (binary_expression "local_448 * fVar2" identifier * identifier) + (binary_expression "local_43c * fVar3" identifier * identifier))) ;) (expression_statement "local_194 = fVar3 * local_438 + local_444 * fVar2;" (assignment_expression "local_194 = fVar3 * local_438 + local_444 * fVar2" identifier = (binary_expression "fVar3 * local_438 + local_444 * fVar2" (binary_expression "fVar3 * local_438" identifier * identifier) + (binary_expression "local_444 * fVar2" identifier * identifier))) ;) (if_statement "if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }" if (parenthesized_expression "(0 < (int)local_4d4)" ( (binary_expression "0 < (int)local_4d4" number_literal < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }" { (expression_statement "pbVar28 = local_a0;" (assignment_expression "pbVar28 = local_a0" identifier = identifier) ;) (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar28 + (int)local_4d4;" (assignment_expression "pbVar18 = pbVar28 + (int)local_4d4" identifier = (binary_expression "pbVar28 + (int)local_4d4" identifier + (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);" do (compound_statement "{\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec3a1);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec3a1)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xec3a1)" * (cast_expression "(float *)(unaff_EDI + 0xec3a1)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3a1)" ( (binary_expression "unaff_EDI + 0xec3a1" identifier + number_literal) ))))) ;) (expression_statement "pfVar22 = &local_1c0;" (assignment_expression "pfVar22 = &local_1c0" identifier = (pointer_expression "&local_1c0" & identifier)) ;) (do_statement "do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);" do (compound_statement "{\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  }" { (expression_statement "fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);" (assignment_expression "fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22)" identifier = (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22)" (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1])" (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[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 ])) )))) + (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)) ))))) ;) (if_statement "if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }" if (parenthesized_expression "(fVar3 < fVar2)" ( (binary_expression "fVar3 < fVar2" identifier < identifier) )) (compound_statement "{\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }" { (expression_statement "iVar24 = iVar12;" (assignment_expression "iVar24 = iVar12" identifier = identifier) ;) (expression_statement "fVar2 = fVar3;" (assignment_expression "fVar2 = fVar3" identifier = identifier) ;) })) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "pfVar22 = pfVar22 + 3;" (assignment_expression "pfVar22 = pfVar22 + 3" identifier = (binary_expression "pfVar22 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 != 4)" ( (binary_expression "iVar12 != 4" identifier != number_literal) )) ;) (expression_statement "*pbVar28 = (byte)iVar24;" (assignment_expression "*pbVar28 = (byte)iVar24" (pointer_expression "*pbVar28" * identifier) = (cast_expression "(byte)iVar24" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 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 "(pbVar28 != pbVar18)" ( (binary_expression "pbVar28 != pbVar18" identifier != identifier) )) ;) })) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);" do (compound_statement "{\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              }" { (if_statement "if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }" if (parenthesized_expression "(local_300[iVar24] == -NAN)" ( (binary_expression "local_300[iVar24] == -NAN" (subscript_expression "local_300[iVar24]" identifier [ identifier ]) == (unary_expression "-NAN" - identifier)) )) (compound_statement "{\n                  local_c0[iVar24] = 3;\n                }" { (expression_statement "local_c0[iVar24] = 3;" (assignment_expression "local_c0[iVar24] = 3" (subscript_expression "local_c0[iVar24]" identifier [ identifier ]) = number_literal) ;) }) (else_clause "else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }" else (compound_statement "{\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }" { (expression_statement "local_c0[iVar24] = local_a0[(int)local_300[iVar24]];" (assignment_expression "local_c0[iVar24] = local_a0[(int)local_300[iVar24]]" (subscript_expression "local_c0[iVar24]" identifier [ identifier ]) = (subscript_expression "local_a0[(int)local_300[iVar24]]" identifier [ (cast_expression "(int)local_300[iVar24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_300[iVar24]" identifier [ identifier ])) ])) ;) }))) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != 0x10)" ( (binary_expression "iVar24 != 0x10" identifier != number_literal) )) ;) }))) (labeled_statement "LAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);" statement_identifier : (expression_statement "FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);" (call_expression "FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0)" identifier (argument_list "(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) }) (else_clause "else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }" else (compound_statement "{\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }" { (expression_statement "local_4b0 = 0xff;" (assignment_expression "local_4b0 = 0xff" identifier = number_literal) ;) (expression_statement "local_4d4 = 0.0;" (assignment_expression "local_4d4 = 0.0" identifier = number_literal) ;) (expression_statement "local_4ac = 3.57331e-43;" (assignment_expression "local_4ac = 3.57331e-43" identifier = number_literal) ;) (expression_statement "local_4b8 = 0.0;" (assignment_expression "local_4b8 = 0.0" identifier = number_literal) ;) (expression_statement "local_4a0 = 0;" (assignment_expression "local_4a0 = 0" identifier = number_literal) ;) (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" identifier = number_literal) ;) (do_statement "do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);" do (compound_statement "{\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            }" { (if_statement "if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }" if (parenthesized_expression "(0 < iVar24)" ( (binary_expression "0 < iVar24" number_literal < identifier) )) (compound_statement "{\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }" { (expression_statement "iVar13 = *(int *)(iVar11 + 0x2a8);" (assignment_expression "iVar13 = *(int *)(iVar11 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar11 + 0x2a8)" * (cast_expression "(int *)(iVar11 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2a8)" ( (binary_expression "iVar11 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(iVar11 + 0x298) * 8;" (assignment_expression "iVar14 = *(int *)(iVar11 + 0x298) * 8" identifier = (binary_expression "*(int *)(iVar11 + 0x298) * 8" (pointer_expression "*(int *)(iVar11 + 0x298)" * (cast_expression "(int *)(iVar11 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x298)" ( (binary_expression "iVar11 + 0x298" identifier + number_literal) )))) * number_literal)) ;) (expression_statement "local_4e0 = (float)((int)local_4c0 << 4);" (assignment_expression "local_4e0 = (float)((int)local_4c0 << 4)" identifier = (cast_expression "(float)((int)local_4c0 << 4)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)local_4c0 << 4)" ( (binary_expression "(int)local_4c0 << 4" (cast_expression "(int)local_4c0" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "iVar33 = local_4a8;" (assignment_expression "iVar33 = local_4a8" identifier = identifier) ;) (do_statement "do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);" do (compound_statement "{\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                }" { (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" identifier = number_literal) ;) (expression_statement "local_4dc._0_1_ = 0xff;" (assignment_expression "local_4dc._0_1_ = 0xff" (field_expression "local_4dc._0_1_" identifier . field_identifier) = number_literal) ;) (if_statement "if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar26 == 0x35545844)" ( (binary_expression "iVar26 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }" { (if_statement "if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(iVar11 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(iVar11 + 0x2a8) + 0x34" (pointer_expression "*(int *)(iVar11 + 0x2a8)" * (cast_expression "(int *)(iVar11 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2a8)" ( (binary_expression "iVar11 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }" { (labeled_statement "LAB_001ed600:\n                      local_4b8 = 3.57331e-43;" statement_identifier : (expression_statement "local_4b8 = 3.57331e-43;" (assignment_expression "local_4b8 = 3.57331e-43" identifier = number_literal) ;)) }) (else_clause "else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }" else (compound_statement "{\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }" { (expression_statement "dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8)" identifier = (pointer_expression "*(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8)" ( (binary_expression "iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar11 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(iVar11 + 0x2a8) + 0x38" (pointer_expression "*(int *)(iVar11 + 0x2a8)" * (cast_expression "(int *)(iVar11 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2a8)" ( (binary_expression "iVar11 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }" if (parenthesized_expression "(dVar7 <= 0.0)" ( (binary_expression "dVar7 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "local_4dc._0_1_ = 0;" (assignment_expression "local_4dc._0_1_ = 0" (field_expression "local_4dc._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_4b0 = 0;" (assignment_expression "local_4b0 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }" else (compound_statement "{\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }" { (expression_statement "dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);" (assignment_expression "dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149)" identifier = (binary_expression "dVar7 / (double)*(float *)(unaff_EDI + 0xbb149)" identifier / (cast_expression "(double)*(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" * (cast_expression "(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb149)" ( (binary_expression "unaff_EDI + 0xbb149" identifier + number_literal) ))))))) ;) (if_statement "if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;" if (parenthesized_expression "((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7)" ( (binary_expression "(double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7" (cast_expression "(double)*(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) ))))) <= identifier) )) (goto_statement "goto LAB_001ed600;" goto statement_identifier ;)) (expression_statement "local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));" (assignment_expression "local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" (field_expression "local_4dc._0_1_" identifier . field_identifier) = (cast_expression "(byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" identifier (argument_list "(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" ( (binary_expression "dVar7 + (double)*(float *)(unaff_EDI + 0xb227d)" identifier + (cast_expression "(double)*(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) )))))) )))))) ;) (expression_statement "uVar15 = (uint)local_4dc._0_1_;" (assignment_expression "uVar15 = (uint)local_4dc._0_1_" identifier = (cast_expression "(uint)local_4dc._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_4dc._0_1_" identifier . field_identifier))) ;) (if_statement "if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }" if (parenthesized_expression "(uVar15 < local_4b0)" ( (binary_expression "uVar15 < local_4b0" identifier < identifier) )) (compound_statement "{\n                          local_4b0 = uVar15;\n                        }" { (expression_statement "local_4b0 = uVar15;" (assignment_expression "local_4b0 = uVar15" identifier = identifier) ;) })) (if_statement "if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }" if (parenthesized_expression "((uint)local_4b8 < uVar15)" ( (binary_expression "(uint)local_4b8 < uVar15" (cast_expression "(uint)local_4b8" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )) (compound_statement "{\n                          local_4b8 = (float)uVar15;\n                        }" { (expression_statement "local_4b8 = (float)uVar15;" (assignment_expression "local_4b8 = (float)uVar15" identifier = (cast_expression "(float)uVar15" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }" if (parenthesized_expression "(local_4dc._0_1_ == 0)" ( (binary_expression "local_4dc._0_1_ == 0" (field_expression "local_4dc._0_1_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                          uVar15 = 0;\n                        }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }" else (compound_statement "{\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }" { (if_statement "if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }" if (parenthesized_expression "(uVar15 < (uint)local_4ac)" ( (binary_expression "uVar15 < (uint)local_4ac" identifier < (cast_expression "(uint)local_4ac" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                            local_4ac = (float)uVar15;\n                          }" { (expression_statement "local_4ac = (float)uVar15;" (assignment_expression "local_4ac = (float)uVar15" identifier = (cast_expression "(float)uVar15" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }" if (parenthesized_expression "(local_4dc._0_1_ == 0xff)" ( (binary_expression "local_4dc._0_1_ == 0xff" (field_expression "local_4dc._0_1_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                            uVar15 = 0xff;\n                          }" { (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" identifier = number_literal) ;) }) (else_clause "else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }" else (if_statement "if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }" if (parenthesized_expression "(local_4a0 < uVar15)" ( (binary_expression "local_4a0 < uVar15" identifier < identifier) )) (compound_statement "{\n                            local_4a0 = uVar15;\n                          }" { (expression_statement "local_4a0 = uVar15;" (assignment_expression "local_4a0 = uVar15" identifier = identifier) ;) })))) }))) }))) }))) })) (expression_statement "*(uint *)((int)local_340 + (int)local_4e0) = uVar15;" (assignment_expression "*(uint *)((int)local_340 + (int)local_4e0) = uVar15" (pointer_expression "*(uint *)((int)local_340 + (int)local_4e0)" * (cast_expression "(uint *)((int)local_340 + (int)local_4e0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_340 + (int)local_4e0)" ( (binary_expression "(int)local_340 + (int)local_4e0" (cast_expression "(int)local_340" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) (expression_statement "fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);" (assignment_expression "fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8)" identifier = (cast_expression "(float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8)" * (cast_expression "(double *)(iVar33 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + *(int *)(iVar13 + 8) * 8)" ( (binary_expression "iVar33 + *(int *)(iVar13 + 8) * 8" identifier + (binary_expression "*(int *)(iVar13 + 8) * 8" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(NAN(fVar2))" ( (call_expression "NAN(fVar2)" identifier (argument_list "(fVar2)" ( identifier ))) )) (compound_statement "{\n                    fVar2 = 0.0;\n                  }" { (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (if_statement "if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(fVar2 <= 0.0)" ( (binary_expression "fVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    fVar2 = 0.0;\n                  }" { (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (compound_statement "{\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" { (expression_statement "fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);" (assignment_expression "fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149)" identifier = (binary_expression "fVar2 / *(float *)(unaff_EDI + 0xbb149)" identifier / (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" * (cast_expression "(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb149)" ( (binary_expression "unaff_EDI + 0xbb149" identifier + number_literal) )))))) ;) (if_statement "if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" if (parenthesized_expression "(*(float *)(unaff_EDI + 0xbb14d) <= fVar2)" ( (binary_expression "*(float *)(unaff_EDI + 0xbb14d) <= fVar2" (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                      fVar2 = 1.0;\n                    }" { (expression_statement "fVar2 = 1.0;" (assignment_expression "fVar2 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" else (compound_statement "{\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" { (expression_statement "fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" identifier = (binary_expression "(float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (cast_expression "(float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (binary_expression "(short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff" (cast_expression "(short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d))" identifier (argument_list "(fVar2 + *(float *)(unaff_EDI + 0xb227d))" ( (binary_expression "fVar2 + *(float *)(unaff_EDI + 0xb227d)" identifier + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) )))) & number_literal) ))) / (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))))) ;) }))) }))))) (expression_statement "fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);" (assignment_expression "fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8)" identifier = (cast_expression "(float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8)" * (cast_expression "(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + *(int *)(iVar13 + 0x14) * 8)" ( (binary_expression "iVar33 + *(int *)(iVar13 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(NAN(fVar3))" ( (call_expression "NAN(fVar3)" identifier (argument_list "(fVar3)" ( identifier ))) )) (compound_statement "{\n                    fVar3 = 0.0;\n                  }" { (expression_statement "fVar3 = 0.0;" (assignment_expression "fVar3 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (if_statement "if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(fVar3 <= 0.0)" ( (binary_expression "fVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    fVar3 = 0.0;\n                  }" { (expression_statement "fVar3 = 0.0;" (assignment_expression "fVar3 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (compound_statement "{\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" { (expression_statement "fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);" (assignment_expression "fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149)" identifier = (binary_expression "fVar3 / *(float *)(unaff_EDI + 0xbb149)" identifier / (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" * (cast_expression "(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb149)" ( (binary_expression "unaff_EDI + 0xbb149" identifier + number_literal) )))))) ;) (if_statement "if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" if (parenthesized_expression "(*(float *)(unaff_EDI + 0xbb14d) <= fVar3)" ( (binary_expression "*(float *)(unaff_EDI + 0xbb14d) <= fVar3" (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                      fVar3 = 1.0;\n                    }" { (expression_statement "fVar3 = 1.0;" (assignment_expression "fVar3 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" else (compound_statement "{\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" { (expression_statement "fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" identifier = (binary_expression "(float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (cast_expression "(float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (binary_expression "(short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff" (cast_expression "(short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d))" identifier (argument_list "(fVar3 + *(float *)(unaff_EDI + 0xb227d))" ( (binary_expression "fVar3 + *(float *)(unaff_EDI + 0xb227d)" identifier + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) )))) & number_literal) ))) / (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))))) ;) }))) }))))) (expression_statement "fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);" (assignment_expression "fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8)" identifier = (cast_expression "(float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8)" * (cast_expression "(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + *(int *)(iVar13 + 0x20) * 8)" ( (binary_expression "iVar33 + *(int *)(iVar13 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(NAN(fVar6))" ( (call_expression "NAN(fVar6)" identifier (argument_list "(fVar6)" ( identifier ))) )) (compound_statement "{\n                    fVar6 = 0.0;\n                  }" { (expression_statement "fVar6 = 0.0;" (assignment_expression "fVar6 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (if_statement "if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" if (parenthesized_expression "(fVar6 <= 0.0)" ( (binary_expression "fVar6 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    fVar6 = 0.0;\n                  }" { (expression_statement "fVar6 = 0.0;" (assignment_expression "fVar6 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" else (compound_statement "{\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" { (expression_statement "fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);" (assignment_expression "fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149)" identifier = (binary_expression "fVar6 / *(float *)(unaff_EDI + 0xbb149)" identifier / (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" * (cast_expression "(float *)(unaff_EDI + 0xbb149)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb149)" ( (binary_expression "unaff_EDI + 0xbb149" identifier + number_literal) )))))) ;) (if_statement "if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" if (parenthesized_expression "(*(float *)(unaff_EDI + 0xbb14d) <= fVar6)" ( (binary_expression "*(float *)(unaff_EDI + 0xbb14d) <= fVar6" (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                      fVar6 = 1.0;\n                    }" { (expression_statement "fVar6 = 1.0;" (assignment_expression "fVar6 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" else (compound_statement "{\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" { (expression_statement "fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" identifier = (binary_expression "(float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (cast_expression "(float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" ( (binary_expression "(short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff" (cast_expression "(short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d))" identifier (argument_list "(fVar6 + *(float *)(unaff_EDI + 0xb227d))" ( (binary_expression "fVar6 + *(float *)(unaff_EDI + 0xb227d)" identifier + (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) )))) & number_literal) ))) / (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) )))))) ;) }))) }))))) (if_statement "if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    fVar4 = 1.0;\n                  }" { (expression_statement "fVar4 = 1.0;" (assignment_expression "fVar4 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }" else (compound_statement "{\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }" { (expression_statement "fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);" (assignment_expression "fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5)" identifier = (binary_expression "(float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5)" (cast_expression "(float)(uVar15 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar15 + 1)" ( (binary_expression "uVar15 + 1" identifier + number_literal) ))) * (pointer_expression "*(float *)(unaff_EDI + 0xec3a5)" * (cast_expression "(float *)(unaff_EDI + 0xec3a5)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3a5)" ( (binary_expression "unaff_EDI + 0xec3a5" identifier + number_literal) )))))) ;) }))) (expression_statement "iVar33 = iVar33 + iVar14;" (assignment_expression "iVar33 = iVar33 + iVar14" identifier = (binary_expression "iVar33 + iVar14" identifier + identifier)) ;) (if_statement "if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }" if (parenthesized_expression "(0 < (int)local_4d4)" ( (binary_expression "0 < (int)local_4d4" number_literal < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }" { (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" identifier = identifier) ;) (expression_statement "fVar27 = 0.0;" (assignment_expression "fVar27 = 0.0" identifier = number_literal) ;) (do_statement "do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);" do (compound_statement "{\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    }" { (if_statement "if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }" if (parenthesized_expression "((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844))))" ( (binary_expression "(((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))" (parenthesized_expression "(((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))" ( (binary_expression "((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6)" (parenthesized_expression "((*pfVar21 == fVar2) && (pfVar21[1] == fVar3))" ( (binary_expression "(*pfVar21 == fVar2) && (pfVar21[1] == fVar3)" (parenthesized_expression "(*pfVar21 == fVar2)" ( (binary_expression "*pfVar21 == fVar2" (pointer_expression "*pfVar21" * identifier) == identifier) )) && (parenthesized_expression "(pfVar21[1] == fVar3)" ( (binary_expression "pfVar21[1] == fVar3" (subscript_expression "pfVar21[1]" identifier [ number_literal ]) == identifier) ))) )) && (parenthesized_expression "(pfVar21[2] == fVar6)" ( (binary_expression "pfVar21[2] == fVar6" (subscript_expression "pfVar21[2]" identifier [ number_literal ]) == identifier) ))) )) && (parenthesized_expression "(((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))" ( (parenthesized_expression "((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844))" ( (binary_expression "(char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)" (binary_expression "(char)local_4dc._0_1_ < '\0'" (cast_expression "(char)local_4dc._0_1_" ( (type_descriptor "char" primitive_type) ) (field_expression "local_4dc._0_1_" identifier . field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(iVar26 == 0x35545844)" ( (binary_expression "iVar26 == 0x35545844" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }" { (expression_statement "local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];" (assignment_expression "local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3]" (subscript_expression "local_2c0[(int)fVar27 * 4 + 3]" identifier [ (binary_expression "(int)fVar27 * 4 + 3" (binary_expression "(int)fVar27 * 4" (cast_expression "(int)fVar27" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = (binary_expression "fVar4 + local_2c0[(int)fVar27 * 4 + 3]" identifier + (subscript_expression "local_2c0[(int)fVar27 * 4 + 3]" identifier [ (binary_expression "(int)fVar27 * 4 + 3" (binary_expression "(int)fVar27 * 4" (cast_expression "(int)fVar27" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]))) ;) (expression_statement "*(float *)((int)local_300 + (int)local_4e0) = fVar27;" (assignment_expression "*(float *)((int)local_300 + (int)local_4e0) = fVar27" (pointer_expression "*(float *)((int)local_300 + (int)local_4e0)" * (cast_expression "(float *)((int)local_300 + (int)local_4e0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_300 + (int)local_4e0)" ( (binary_expression "(int)local_300 + (int)local_4e0" (cast_expression "(int)local_300" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) (goto_statement "goto LAB_001ed2a5;" goto statement_identifier ;) })) (expression_statement "fVar27 = (float)((int)fVar27 + 1);" (assignment_expression "fVar27 = (float)((int)fVar27 + 1)" identifier = (cast_expression "(float)((int)fVar27 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)fVar27 + 1)" ( (binary_expression "(int)fVar27 + 1" (cast_expression "(int)fVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pfVar21 = pfVar21 + 4;" (assignment_expression "pfVar21 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(fVar27 != local_4d4)" ( (binary_expression "fVar27 != local_4d4" identifier != identifier) )) ;) })) (expression_statement "local_2c0[(int)local_4d4 * 4] = fVar2;" (assignment_expression "local_2c0[(int)local_4d4 * 4] = fVar2" (subscript_expression "local_2c0[(int)local_4d4 * 4]" identifier [ (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) = identifier) ;) (expression_statement "local_2c0[(int)local_4d4 * 4 + 1] = fVar3;" (assignment_expression "local_2c0[(int)local_4d4 * 4 + 1] = fVar3" (subscript_expression "local_2c0[(int)local_4d4 * 4 + 1]" identifier [ (binary_expression "(int)local_4d4 * 4 + 1" (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "local_2c0[(int)local_4d4 * 4 + 2] = fVar6;" (assignment_expression "local_2c0[(int)local_4d4 * 4 + 2] = fVar6" (subscript_expression "local_2c0[(int)local_4d4 * 4 + 2]" identifier [ (binary_expression "(int)local_4d4 * 4 + 2" (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "local_2c0[(int)local_4d4 * 4 + 3] = fVar4;" (assignment_expression "local_2c0[(int)local_4d4 * 4 + 3] = fVar4" (subscript_expression "local_2c0[(int)local_4d4 * 4 + 3]" identifier [ (binary_expression "(int)local_4d4 * 4 + 3" (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "*(float *)((int)local_300 + (int)local_4e0) = local_4d4;" (assignment_expression "*(float *)((int)local_300 + (int)local_4e0) = local_4d4" (pointer_expression "*(float *)((int)local_300 + (int)local_4e0)" * (cast_expression "(float *)((int)local_300 + (int)local_4e0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_300 + (int)local_4e0)" ( (binary_expression "(int)local_300 + (int)local_4e0" (cast_expression "(int)local_300" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) (expression_statement "local_4d4 = (float)((int)local_4d4 + 1);" (assignment_expression "local_4d4 = (float)((int)local_4d4 + 1)" identifier = (cast_expression "(float)((int)local_4d4 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)local_4d4 + 1)" ( (binary_expression "(int)local_4d4 + 1" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);" statement_identifier : (expression_statement "local_4e0 = (float)((int)local_4e0 + 4);" (assignment_expression "local_4e0 = (float)((int)local_4e0 + 4)" identifier = (cast_expression "(float)((int)local_4e0 + 4)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)local_4e0 + 4)" ( (binary_expression "(int)local_4e0 + 4" (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0)" ( (binary_expression "(float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0" (cast_expression "(float)((iVar24 + (int)local_4c0 * 4) * 4)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((iVar24 + (int)local_4c0 * 4) * 4)" ( (binary_expression "(iVar24 + (int)local_4c0 * 4) * 4" (parenthesized_expression "(iVar24 + (int)local_4c0 * 4)" ( (binary_expression "iVar24 + (int)local_4c0 * 4" identifier + (binary_expression "(int)local_4c0 * 4" (cast_expression "(int)local_4c0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )) * number_literal) ))) != identifier) )) ;) (expression_statement "local_4a8 = local_4a8 + iVar14 * iVar24;" (assignment_expression "local_4a8 = local_4a8 + iVar14 * iVar24" identifier = (binary_expression "local_4a8 + iVar14 * iVar24" identifier + (binary_expression "iVar14 * iVar24" identifier * identifier))) ;) })) (expression_statement "local_4c0 = (float)((int)local_4c0 + 1);" (assignment_expression "local_4c0 = (float)((int)local_4c0 + 1)" identifier = (cast_expression "(float)((int)local_4c0 + 1)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((int)local_4c0 + 1)" ( (binary_expression "(int)local_4c0 + 1" (cast_expression "(int)local_4c0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(local_4c0 != (float)iVar12)" ( (binary_expression "local_4c0 != (float)iVar12" identifier != (cast_expression "(float)iVar12" ( (type_descriptor "float" primitive_type) ) identifier)) )) ;) (if_statement "if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }" if (parenthesized_expression "(0 < (int)local_4d4)" ( (binary_expression "0 < (int)local_4d4" number_literal < (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }" { (expression_statement "pfVar21 = local_2c0 + 3;" (assignment_expression "pfVar21 = local_2c0 + 3" identifier = (binary_expression "local_2c0 + 3" identifier + number_literal)) ;) (expression_statement "pfVar22 = pfVar21 + (int)local_4d4 * 4;" (assignment_expression "pfVar22 = pfVar21 + (int)local_4d4 * 4" identifier = (binary_expression "pfVar21 + (int)local_4d4 * 4" identifier + (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);" do (compound_statement "{\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              }" { (expression_statement "fVar2 = *pfVar21;" (assignment_expression "fVar2 = *pfVar21" identifier = (pointer_expression "*pfVar21" * identifier)) ;) (if_statement "if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }" if (parenthesized_expression "(fVar2 < 0.0)" ( (binary_expression "fVar2 < 0.0" identifier < number_literal) )) (compound_statement "{\n                  sqrtf(fVar2);\n                }" { (expression_statement "sqrtf(fVar2);" (call_expression "sqrtf(fVar2)" identifier (argument_list "(fVar2)" ( identifier ))) ;) })) (expression_statement "*pfVar21 = SQRT(fVar2);" (assignment_expression "*pfVar21 = SQRT(fVar2)" (pointer_expression "*pfVar21" * identifier) = (call_expression "SQRT(fVar2)" identifier (argument_list "(fVar2)" ( identifier )))) ;) (expression_statement "pfVar21 = pfVar21 + 4;" (assignment_expression "pfVar21 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pfVar22 != pfVar21)" ( (binary_expression "pfVar22 != pfVar21" identifier != identifier) )) ;) })) (if_statement "if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }" if (parenthesized_expression "(iVar26 == 0x35545844)" ( (binary_expression "iVar26 == 0x35545844" identifier == number_literal) )) (compound_statement "{\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }" { (if_statement "if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;" if (parenthesized_expression "(local_4a0 < (uint)local_4ac)" ( (binary_expression "local_4a0 < (uint)local_4ac" identifier < (cast_expression "(uint)local_4ac" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                local_4ac = (float)local_4a0;\n              }" { (expression_statement "local_4ac = (float)local_4a0;" (assignment_expression "local_4ac = (float)local_4a0" identifier = (cast_expression "(float)local_4a0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;" else (if_statement "if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;" if (parenthesized_expression "(4 < local_4a0 - (int)local_4ac)" ( (binary_expression "4 < local_4a0 - (int)local_4ac" number_literal < (binary_expression "local_4a0 - (int)local_4ac" identifier - (cast_expression "(int)local_4ac" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_001ee710;" goto statement_identifier ;)))) (expression_statement "local_4a0 = 0xff;" (assignment_expression "local_4a0 = 0xff" identifier = number_literal) ;) (if_statement "if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }" if (parenthesized_expression "((int)local_4ac + 5U < 0x100)" ( (binary_expression "(int)local_4ac + 5U < 0x100" (binary_expression "(int)local_4ac + 5U" (cast_expression "(int)local_4ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) < number_literal) )) (compound_statement "{\n                local_4a0 = (int)local_4ac + 5U;\n              }" { (expression_statement "local_4a0 = (int)local_4ac + 5U;" (assignment_expression "local_4a0 = (int)local_4ac + 5U" identifier = (binary_expression "(int)local_4ac + 5U" (cast_expression "(int)local_4ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) })) (if_statement "if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }" if (parenthesized_expression "(local_4a0 - (int)local_4ac < 5)" ( (binary_expression "local_4a0 - (int)local_4ac < 5" (binary_expression "local_4a0 - (int)local_4ac" identifier - (cast_expression "(int)local_4ac" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n                local_4ac = (float)(local_4a0 - 5);\n              }" { (expression_statement "local_4ac = (float)(local_4a0 - 5);" (assignment_expression "local_4ac = (float)(local_4a0 - 5)" identifier = (cast_expression "(float)(local_4a0 - 5)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(local_4a0 - 5)" ( (binary_expression "local_4a0 - 5" identifier - number_literal) )))) ;) })) (labeled_statement "LAB_001ee710:\n              pbVar28 = local_b0;" statement_identifier : (expression_statement "pbVar28 = local_b0;" (assignment_expression "pbVar28 = local_b0" identifier = identifier) ;)) (expression_statement "uVar15 = FUN_001e9410(local_340,pbVar28);" (assignment_expression "uVar15 = FUN_001e9410(local_340,pbVar28)" identifier = (call_expression "FUN_001e9410(local_340,pbVar28)" identifier (argument_list "(local_340,pbVar28)" ( identifier , identifier )))) ;) (if_statement "if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" if (parenthesized_expression "((uint)local_4b8 < local_4b0)" ( (binary_expression "(uint)local_4b8 < local_4b0" (cast_expression "(uint)local_4b8" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )) (compound_statement "{\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }" { (labeled_statement "LAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;" statement_identifier : (expression_statement "uVar19 = (int)local_4b8 + 7;" (assignment_expression "uVar19 = (int)local_4b8 + 7" identifier = (binary_expression "(int)local_4b8 + 7" (cast_expression "(int)local_4b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;)) (if_statement "if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }" if (parenthesized_expression "(0xff < uVar19)" ( (binary_expression "0xff < uVar19" number_literal < identifier) )) (compound_statement "{\n                  uVar19 = 0xff;\n                }" { (expression_statement "uVar19 = 0xff;" (assignment_expression "uVar19 = 0xff" identifier = number_literal) ;) })) (if_statement "if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }" if (parenthesized_expression "(uVar19 - (int)local_4b8 < 7)" ( (binary_expression "uVar19 - (int)local_4b8 < 7" (binary_expression "uVar19 - (int)local_4b8" identifier - (cast_expression "(int)local_4b8" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }" { (expression_statement "local_4b0 = uVar19 - 7;" (assignment_expression "local_4b0 = uVar19 - 7" identifier = (binary_expression "uVar19 - 7" identifier - number_literal)) ;) (expression_statement "local_4b8 = (float)uVar19;" (assignment_expression "local_4b8 = (float)uVar19" identifier = (cast_expression "(float)uVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }" else (compound_statement "{\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }" { (expression_statement "local_4b0 = (uint)local_4b8;" (assignment_expression "local_4b0 = (uint)local_4b8" identifier = (cast_expression "(uint)local_4b8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_4b8 = (float)uVar19;" (assignment_expression "local_4b8 = (float)uVar19" identifier = (cast_expression "(float)uVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) }) (else_clause "else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" else (if_statement "if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" if (parenthesized_expression "((int)local_4b8 - local_4b0 < 7)" ( (binary_expression "(int)local_4b8 - local_4b0 < 7" (binary_expression "(int)local_4b8 - local_4b0" (cast_expression "(int)local_4b8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) < number_literal) )) (compound_statement "{\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" { (expression_statement "local_4b8 = (float)local_4b0;" (assignment_expression "local_4b8 = (float)local_4b0" identifier = (cast_expression "(float)local_4b0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_001eea60;" goto statement_identifier ;) })))) (expression_statement "uVar19 = FUN_001e9410(local_340,local_a0);" (assignment_expression "uVar19 = FUN_001e9410(local_340,local_a0)" identifier = (call_expression "FUN_001e9410(local_340,local_a0)" identifier (argument_list "(local_340,local_a0)" ( identifier , identifier )))) ;) (if_statement "if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }" if (parenthesized_expression "(uVar19 < uVar15)" ( (binary_expression "uVar19 < uVar15" identifier < identifier) )) (compound_statement "{\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);" do (compound_statement "{\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                }" { (while_statement "while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }" while (parenthesized_expression "(bVar25 = local_a0[iVar24], bVar25 == 0)" ( (comma_expression "bVar25 = local_a0[iVar24], bVar25 == 0" (assignment_expression "bVar25 = local_a0[iVar24]" identifier = (subscript_expression "local_a0[iVar24]" identifier [ identifier ])) , (binary_expression "bVar25 == 0" identifier == number_literal)) )) (compound_statement "{\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }" { (expression_statement "pbVar28[iVar24] = 1;" (assignment_expression "pbVar28[iVar24] = 1" (subscript_expression "pbVar28[iVar24]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (if_statement "if (iVar24 == 0x10) goto LAB_001ee8cf;" if (parenthesized_expression "(iVar24 == 0x10)" ( (binary_expression "iVar24 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_001ee8cf;" goto statement_identifier ;)) })) (expression_statement "bVar23 = 9 - bVar25;" (assignment_expression "bVar23 = 9 - bVar25" identifier = (binary_expression "9 - bVar25" number_literal - identifier)) ;) (if_statement "if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }" if (parenthesized_expression "(bVar25 == 1)" ( (binary_expression "bVar25 == 1" identifier == number_literal) )) (compound_statement "{\n                    bVar23 = 0;\n                  }" { (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) })) (expression_statement "iVar12 = iVar24 + 1;" (assignment_expression "iVar12 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "pbVar28[iVar24] = bVar23;" (assignment_expression "pbVar28[iVar24] = bVar23" (subscript_expression "pbVar28[iVar24]" identifier [ identifier ]) = identifier) ;) (expression_statement "iVar24 = iVar12;" (assignment_expression "iVar24 = iVar12" identifier = identifier) ;) }) while (parenthesized_expression "(iVar12 != 0x10)" ( (binary_expression "iVar12 != 0x10" identifier != number_literal) )) ;) }) (else_clause "else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }" else (compound_statement "{\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }" { (expression_statement "local_4b0 = local_4a0;" (assignment_expression "local_4b0 = local_4a0" identifier = identifier) ;) (expression_statement "local_4b8 = local_4ac;" (assignment_expression "local_4b8 = local_4ac" identifier = identifier) ;) }))) (labeled_statement "LAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);" statement_identifier : (expression_statement "WriteBlobByte(iVar11,local_4b8);" (call_expression "WriteBlobByte(iVar11,local_4b8)" identifier (argument_list "(iVar11,local_4b8)" ( identifier , identifier ))) ;)) (expression_statement "WriteBlobByte(iVar11,local_4b0);" (call_expression "WriteBlobByte(iVar11,local_4b0)" identifier (argument_list "(iVar11,local_4b0)" ( identifier , identifier ))) ;) (do_statement "do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);" do (compound_statement "{\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);" do (compound_statement "{\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                }" { (expression_statement "pbVar18 = pbVar28 + iVar24;" (assignment_expression "pbVar18 = pbVar28 + iVar24" identifier = (binary_expression "pbVar28 + iVar24" identifier + identifier)) ;) (expression_statement "cVar9 = (char)iVar24;" (assignment_expression "cVar9 = (char)iVar24" identifier = (cast_expression "(char)iVar24" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);" (assignment_expression "uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU)" identifier = (binary_expression "uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU)" identifier | (binary_expression "(uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU)" (binary_expression "(uint)*pbVar18" (parenthesized_expression "(uint)" ( identifier )) * identifier) << (parenthesized_expression "(cVar9 * '\x03' & 0x1fU)" ( (binary_expression "cVar9 * '\x03' & 0x1fU" (binary_expression "cVar9 * '\x03'" identifier * (char_literal "'\x03'" ' escape_sequence ')) & number_literal) ))))) ;) }) while (parenthesized_expression "(iVar24 != 8)" ( (binary_expression "iVar24 != 8" identifier != number_literal) )) ;) (expression_statement "pbVar28 = pbVar28 + 8;" (assignment_expression "pbVar28 = pbVar28 + 8" identifier = (binary_expression "pbVar28 + 8" identifier + number_literal)) ;) (expression_statement "WriteBlobByte(iVar11,uVar15 & 0xff);" (call_expression "WriteBlobByte(iVar11,uVar15 & 0xff)" identifier (argument_list "(iVar11,uVar15 & 0xff)" ( identifier , (binary_expression "uVar15 & 0xff" identifier & number_literal) ))) ;) (expression_statement "WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);" (call_expression "WriteBlobByte(iVar11,uVar15 >> 8 & 0xff)" identifier (argument_list "(iVar11,uVar15 >> 8 & 0xff)" ( identifier , (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal) ))) ;) (expression_statement "WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);" (call_expression "WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff)" identifier (argument_list "(iVar11,uVar15 >> 0x10 & 0xff)" ( identifier , (binary_expression "uVar15 >> 0x10 & 0xff" (binary_expression "uVar15 >> 0x10" identifier >> number_literal) & number_literal) ))) ;) }) while (parenthesized_expression "(local_a0 != pbVar28)" ( (binary_expression "local_a0 != pbVar28" identifier != identifier) )) ;) })) (if_statement "if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }" if (parenthesized_expression "(local_4d4 != 1.4013e-45)" ( (binary_expression "local_4d4 != 1.4013e-45" identifier != number_literal) )) (compound_statement "{\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }" { (expression_statement "fVar6 = 0.0;" (assignment_expression "fVar6 = 0.0" identifier = number_literal) ;) (if_statement "if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }" if (parenthesized_expression "(local_4d4 == 0.0)" ( (binary_expression "local_4d4 == 0.0" identifier == number_literal) )) (compound_statement "{\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }" { (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" identifier = number_literal) ;) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" identifier = number_literal) ;) (expression_statement "fVar2 = fVar6;" (assignment_expression "fVar2 = fVar6" identifier = identifier) ;) (expression_statement "fVar3 = local_4c0;" (assignment_expression "fVar3 = local_4c0" identifier = identifier) ;) }) (else_clause "else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }" else (compound_statement "{\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }" { (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4b8 = 0.0;" (assignment_expression "local_4b8 = 0.0" identifier = number_literal) ;) (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" identifier = identifier) ;) (do_statement "do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);" do (compound_statement "{\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                }" { (expression_statement "fVar3 = pfVar21[3];" (assignment_expression "fVar3 = pfVar21[3]" identifier = (subscript_expression "pfVar21[3]" identifier [ number_literal ])) ;) (expression_statement "pfVar22 = pfVar21 + 4;" (assignment_expression "pfVar22 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) (expression_statement "fVar2 = fVar2 + fVar3;" (assignment_expression "fVar2 = fVar2 + fVar3" identifier = (binary_expression "fVar2 + fVar3" identifier + identifier)) ;) (expression_statement "local_4b8 = *pfVar21 * fVar3 + local_4b8;" (assignment_expression "local_4b8 = *pfVar21 * fVar3 + local_4b8" identifier = (binary_expression "*pfVar21 * fVar3 + local_4b8" (binary_expression "*pfVar21 * fVar3" (pointer_expression "*pfVar21" * identifier) * identifier) + identifier)) ;) (expression_statement "local_4c0 = pfVar21[1] * fVar3 + local_4c0;" (assignment_expression "local_4c0 = pfVar21[1] * fVar3 + local_4c0" identifier = (binary_expression "pfVar21[1] * fVar3 + local_4c0" (binary_expression "pfVar21[1] * fVar3" (subscript_expression "pfVar21[1]" identifier [ number_literal ]) * identifier) + identifier)) ;) (expression_statement "fVar6 = fVar3 * pfVar21[2] + fVar6;" (assignment_expression "fVar6 = fVar3 * pfVar21[2] + fVar6" identifier = (binary_expression "fVar3 * pfVar21[2] + fVar6" (binary_expression "fVar3 * pfVar21[2]" identifier * (subscript_expression "pfVar21[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "pfVar21 = pfVar22;" (assignment_expression "pfVar21 = pfVar22" identifier = identifier) ;) }) while (parenthesized_expression "(local_2c0 + (int)local_4d4 * 4 != pfVar22)" ( (binary_expression "local_2c0 + (int)local_4d4 * 4 != pfVar22" (binary_expression "local_2c0 + (int)local_4d4 * 4" identifier + (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) (if_statement "if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }" if (parenthesized_expression "(*(float *)(unaff_EDI + 0xec3a9) < fVar2)" ( (binary_expression "*(float *)(unaff_EDI + 0xec3a9) < fVar2" (pointer_expression "*(float *)(unaff_EDI + 0xec3a9)" * (cast_expression "(float *)(unaff_EDI + 0xec3a9)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xec3a9)" ( (binary_expression "unaff_EDI + 0xec3a9" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }" { (expression_statement "local_4b8 = local_4b8 / fVar2;" (assignment_expression "local_4b8 = local_4b8 / fVar2" identifier = (binary_expression "local_4b8 / fVar2" identifier / identifier)) ;) (expression_statement "local_4c0 = local_4c0 / fVar2;" (assignment_expression "local_4c0 = local_4c0 / fVar2" identifier = (binary_expression "local_4c0 / fVar2" identifier / identifier)) ;) (expression_statement "fVar6 = fVar6 / fVar2;" (assignment_expression "fVar6 = fVar6 / fVar2" identifier = (binary_expression "fVar6 / fVar2" identifier / identifier)) ;) })) (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" identifier = number_literal) ;) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" identifier = number_literal) ;) (expression_statement "fVar3 = 0.0;" (assignment_expression "fVar3 = 0.0" identifier = number_literal) ;) (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" identifier = number_literal) ;) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" identifier = number_literal) ;) (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" identifier = identifier) ;) (do_statement "do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);" do (compound_statement "{\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                }" { (expression_statement "pfVar22 = pfVar21 + 4;" (assignment_expression "pfVar22 = pfVar21 + 4" identifier = (binary_expression "pfVar21 + 4" identifier + number_literal)) ;) (expression_statement "fVar5 = *pfVar21 - local_4b8;" (assignment_expression "fVar5 = *pfVar21 - local_4b8" identifier = (binary_expression "*pfVar21 - local_4b8" (pointer_expression "*pfVar21" * identifier) - identifier)) ;) (expression_statement "fVar8 = pfVar21[1] - local_4c0;" (assignment_expression "fVar8 = pfVar21[1] - local_4c0" identifier = (binary_expression "pfVar21[1] - local_4c0" (subscript_expression "pfVar21[1]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "fVar4 = pfVar21[3];" (assignment_expression "fVar4 = pfVar21[3]" identifier = (subscript_expression "pfVar21[3]" identifier [ number_literal ])) ;) (expression_statement "fVar27 = (pfVar21[2] - fVar6) * fVar4;" (assignment_expression "fVar27 = (pfVar21[2] - fVar6) * fVar4" identifier = (binary_expression "(pfVar21[2] - fVar6) * fVar4" (parenthesized_expression "(pfVar21[2] - fVar6)" ( (binary_expression "pfVar21[2] - fVar6" (subscript_expression "pfVar21[2]" identifier [ number_literal ]) - identifier) )) * identifier)) ;) (expression_statement "local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;" (assignment_expression "local_4cc = fVar4 * fVar5 * fVar5 + local_4cc" identifier = (binary_expression "fVar4 * fVar5 * fVar5 + local_4cc" (binary_expression "fVar4 * fVar5 * fVar5" (binary_expression "fVar4 * fVar5" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "fVar2 = fVar5 * fVar8 * fVar4 + fVar2;" (assignment_expression "fVar2 = fVar5 * fVar8 * fVar4 + fVar2" identifier = (binary_expression "fVar5 * fVar8 * fVar4 + fVar2" (binary_expression "fVar5 * fVar8 * fVar4" (binary_expression "fVar5 * fVar8" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "local_4dc = fVar5 * fVar27 + local_4dc;" (assignment_expression "local_4dc = fVar5 * fVar27 + local_4dc" identifier = (binary_expression "fVar5 * fVar27 + local_4dc" (binary_expression "fVar5 * fVar27" identifier * identifier) + identifier)) ;) (expression_statement "fVar3 = fVar8 * fVar4 * fVar8 + fVar3;" (assignment_expression "fVar3 = fVar8 * fVar4 * fVar8 + fVar3" identifier = (binary_expression "fVar8 * fVar4 * fVar8 + fVar3" (binary_expression "fVar8 * fVar4 * fVar8" (binary_expression "fVar8 * fVar4" identifier * identifier) * identifier) + identifier)) ;) (expression_statement "local_4e0 = fVar8 * fVar27 + local_4e0;" (assignment_expression "local_4e0 = fVar8 * fVar27 + local_4e0" identifier = (binary_expression "fVar8 * fVar27 + local_4e0" (binary_expression "fVar8 * fVar27" identifier * identifier) + identifier)) ;) (expression_statement "local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;" (assignment_expression "local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0" identifier = (binary_expression "(pfVar21[2] - fVar6) * fVar27 + local_4d0" (binary_expression "(pfVar21[2] - fVar6) * fVar27" (parenthesized_expression "(pfVar21[2] - fVar6)" ( (binary_expression "pfVar21[2] - fVar6" (subscript_expression "pfVar21[2]" identifier [ number_literal ]) - identifier) )) * identifier) + identifier)) ;) (expression_statement "pfVar21 = pfVar22;" (assignment_expression "pfVar21 = pfVar22" identifier = identifier) ;) }) while (parenthesized_expression "(local_2c0 + (int)local_4d4 * 4 != pfVar22)" ( (binary_expression "local_2c0 + (int)local_4d4 * 4 != pfVar22" (binary_expression "local_2c0 + (int)local_4d4 * 4" identifier + (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) != identifier) )) ;) }))) (goto_statement "goto LAB_001ed457;" goto statement_identifier ;) })) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xbb14d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" * (cast_expression "(float *)(unaff_EDI + 0xbb14d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xbb14d)" ( (binary_expression "unaff_EDI + 0xbb14d" identifier + number_literal) ))))) ;) (expression_statement "local_4dc = -NAN;" (assignment_expression "local_4dc = -NAN" identifier = (unary_expression "-NAN" - identifier)) ;) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" identifier = number_literal) ;) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb227d)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" * (cast_expression "(float *)(unaff_EDI + 0xb227d)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xb227d)" ( (binary_expression "unaff_EDI + 0xb227d" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);" (assignment_expression "uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3)" identifier = (cast_expression "(uint)ROUND(local_2c0[0] * fVar2 + fVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(local_2c0[0] * fVar2 + fVar3)" identifier (argument_list "(local_2c0[0] * fVar2 + fVar3)" ( (binary_expression "local_2c0[0] * fVar2 + fVar3" (binary_expression "local_2c0[0] * fVar2" (subscript_expression "local_2c0[0]" identifier [ number_literal ]) * 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) ;) })) (expression_statement "local_c0[0] = (byte)uVar15;" (assignment_expression "local_c0[0] = (byte)uVar15" (subscript_expression "local_c0[0]" identifier [ number_literal ]) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);" (assignment_expression "uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3)" identifier = (cast_expression "(uint)ROUND(local_2c0[1] * fVar2 + fVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(local_2c0[1] * fVar2 + fVar3)" identifier (argument_list "(local_2c0[1] * fVar2 + fVar3)" ( (binary_expression "local_2c0[1] * fVar2 + fVar3" (binary_expression "local_2c0[1] * fVar2" (subscript_expression "local_2c0[1]" identifier [ number_literal ]) * identifier) + identifier) ))))) ;) (if_statement "if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }" if (parenthesized_expression "(0xff < uVar19)" ( (binary_expression "0xff < uVar19" number_literal < identifier) )) (compound_statement "{\n              uVar19 = 0xff;\n            }" { (expression_statement "uVar19 = 0xff;" (assignment_expression "uVar19 = 0xff" identifier = number_literal) ;) })) (expression_statement "local_c0[1] = (char)uVar19;" (assignment_expression "local_c0[1] = (char)uVar19" (subscript_expression "local_c0[1]" identifier [ number_literal ]) = (cast_expression "(char)uVar19" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);" (assignment_expression "uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3)" identifier = (cast_expression "(uint)ROUND(fVar2 * local_2c0[2] + fVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(fVar2 * local_2c0[2] + fVar3)" identifier (argument_list "(fVar2 * local_2c0[2] + fVar3)" ( (binary_expression "fVar2 * local_2c0[2] + fVar3" (binary_expression "fVar2 * local_2c0[2]" identifier * (subscript_expression "local_2c0[2]" identifier [ number_literal ])) + identifier) ))))) ;) (if_statement "if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }" if (parenthesized_expression "(0xff < uVar29)" ( (binary_expression "0xff < uVar29" number_literal < identifier) )) (compound_statement "{\n              uVar29 = 0xff;\n            }" { (expression_statement "uVar29 = 0xff;" (assignment_expression "uVar29 = 0xff" identifier = number_literal) ;) })) (expression_statement "local_c0[2] = (char)uVar29;" (assignment_expression "local_c0[2] = (char)uVar29" (subscript_expression "local_c0[2]" identifier [ number_literal ]) = (cast_expression "(char)uVar29" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar20 = uVar15;" (assignment_expression "uVar20 = uVar15" identifier = identifier) ;) (while_statement "while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }" { (expression_statement "iVar24 = (int)local_4e0 * 3;" (assignment_expression "iVar24 = (int)local_4e0 * 3" identifier = (binary_expression "(int)local_4e0 * 3" (cast_expression "(int)local_4e0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);" (assignment_expression "pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24)" identifier = (cast_expression "(byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24)" ( (binary_expression "*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24" (binary_expression "*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6" (pointer_expression "*(int *)(unaff_EDI + 0x1ef625)" * (cast_expression "(int *)(unaff_EDI + 0x1ef625)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1ef625)" ( (binary_expression "unaff_EDI + 0x1ef625" identifier + number_literal) )))) + (binary_expression "(uVar20 & 0xff) * 6" (parenthesized_expression "(uVar20 & 0xff)" ( (binary_expression "uVar20 & 0xff" identifier & number_literal) )) * number_literal)) + identifier) )))) ;) (expression_statement "pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);" (assignment_expression "pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24)" identifier = (cast_expression "(byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24)" ( (binary_expression "(uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24" (binary_expression "(uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629)" (binary_expression "(uVar19 & 0xff) * 6" (parenthesized_expression "(uVar19 & 0xff)" ( (binary_expression "uVar19 & 0xff" identifier & number_literal) )) * number_literal) + (pointer_expression "*(int *)(unaff_EDI + 0x1ef629)" * (cast_expression "(int *)(unaff_EDI + 0x1ef629)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1ef629)" ( (binary_expression "unaff_EDI + 0x1ef629" identifier + number_literal) ))))) + identifier) )))) ;) (expression_statement "pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));" (assignment_expression "pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d))" identifier = (cast_expression "(byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d))" ( (binary_expression "iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d)" (binary_expression "iVar24 + (uVar29 & 0xff) * 6" identifier + (binary_expression "(uVar29 & 0xff) * 6" (parenthesized_expression "(uVar29 & 0xff)" ( (binary_expression "uVar29 & 0xff" identifier & number_literal) )) * number_literal)) + (pointer_expression "*(int *)(unaff_EDI + 0x1ef62d)" * (cast_expression "(int *)(unaff_EDI + 0x1ef62d)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1ef62d)" ( (binary_expression "unaff_EDI + 0x1ef62d" identifier + number_literal) ))))) )))) ;) (expression_statement "uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];" (assignment_expression "uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2]" identifier = (binary_expression "(uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2]" (binary_expression "(uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2]" (binary_expression "(uint)pbVar28[2] * (uint)pbVar28[2]" (cast_expression "(uint)pbVar28[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar28[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar28[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar28[2]" identifier [ number_literal ]))) + (binary_expression "(uint)pbVar18[2] * (uint)pbVar18[2]" (cast_expression "(uint)pbVar18[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar18[2]" identifier [ number_literal ])) * (cast_expression "(uint)pbVar18[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar18[2]" identifier [ number_literal ])))) + (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 ]))))) ;) (if_statement "if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }" if (parenthesized_expression "(uVar20 <= (uint)local_4dc)" ( (binary_expression "uVar20 <= (uint)local_4dc" identifier <= (cast_expression "(uint)local_4dc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }" { (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xd9031)" identifier = (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" * (cast_expression "(float *)(unaff_EDI + 0xd9031)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xd9031)" ( (binary_expression "unaff_EDI + 0xd9031" identifier + number_literal) ))))) ;) (expression_statement "local_39c = (float)*pbVar31 / fVar2;" (assignment_expression "local_39c = (float)*pbVar31 / fVar2" identifier = (binary_expression "(float)*pbVar31 / fVar2" (cast_expression "(float)*pbVar31" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar31" * identifier)) / identifier)) ;) (expression_statement "local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);" (assignment_expression "local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975)" identifier = (binary_expression "(float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975)" (cast_expression "(float)*pbVar28" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar28" * identifier)) / (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" * (cast_expression "(float *)(unaff_EDI + 0xdf975)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf975)" ( (binary_expression "unaff_EDI + 0xdf975" identifier + number_literal) )))))) ;) (expression_statement "local_394 = (float)*pbVar18 / fVar2;" (assignment_expression "local_394 = (float)*pbVar18 / fVar2" identifier = (binary_expression "(float)*pbVar18 / fVar2" (cast_expression "(float)*pbVar18" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*pbVar18" * identifier)) / identifier)) ;) (expression_statement "local_38c = (float)pbVar31[1] / fVar2;" (assignment_expression "local_38c = (float)pbVar31[1] / fVar2" identifier = (binary_expression "(float)pbVar31[1] / fVar2" (cast_expression "(float)pbVar31[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar31[1]" identifier [ number_literal ])) / identifier)) ;) (expression_statement "bVar25 = local_4e0._0_1_ * '\x02';" (assignment_expression "bVar25 = local_4e0._0_1_ * '\x02'" identifier = (binary_expression "local_4e0._0_1_ * '\x02'" (field_expression "local_4e0._0_1_" identifier . field_identifier) * (char_literal "'\x02'" ' escape_sequence '))) ;) (expression_statement "local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));" (assignment_expression "local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975))" identifier = (cast_expression "(undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975))" ( (binary_expression "(float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975)" (cast_expression "(float)pbVar28[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar28[1]" identifier [ number_literal ])) / (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" * (cast_expression "(float *)(unaff_EDI + 0xdf975)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xdf975)" ( (binary_expression "unaff_EDI + 0xdf975" identifier + number_literal) ))))) )))) ;) (expression_statement "local_384 = (float *)((float)pbVar18[1] / fVar2);" (assignment_expression "local_384 = (float *)((float)pbVar18[1] / fVar2)" identifier = (cast_expression "(float *)((float)pbVar18[1] / fVar2)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((float)pbVar18[1] / fVar2)" ( (binary_expression "(float)pbVar18[1] / fVar2" (cast_expression "(float)pbVar18[1]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "pbVar18[1]" identifier [ number_literal ])) / identifier) )))) ;) (expression_statement "local_4dc = (float)uVar20;" (assignment_expression "local_4dc = (float)uVar20" identifier = (cast_expression "(float)uVar20" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (local_4e0 == 1.4013e-45) break;" if (parenthesized_expression "(local_4e0 == 1.4013e-45)" ( (binary_expression "local_4e0 == 1.4013e-45" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar20 = uVar15 & 0xff;" (assignment_expression "uVar20 = uVar15 & 0xff" identifier = (binary_expression "uVar15 & 0xff" identifier & number_literal)) ;) (expression_statement "local_4e0 = 1.4013e-45;" (assignment_expression "local_4e0 = 1.4013e-45" identifier = number_literal) ;) })) (expression_statement "pbVar28 = local_b0;" (assignment_expression "pbVar28 = local_b0" identifier = identifier) ;) (do_statement "do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);" do (compound_statement "{\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            }" { (expression_statement "*pbVar28 = bVar25;" (assignment_expression "*pbVar28 = bVar25" (pointer_expression "*pbVar28" * identifier) = identifier) ;) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_a0 != pbVar28)" ( (binary_expression "local_a0 != pbVar28" identifier != identifier) )) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);" do (compound_statement "{\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            }" { (while_statement "while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }" while (parenthesized_expression "(local_300[iVar24] != -NAN)" ( (binary_expression "local_300[iVar24] != -NAN" (subscript_expression "local_300[iVar24]" identifier [ identifier ]) != (unary_expression "-NAN" - identifier)) )) (compound_statement "{\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }" { (expression_statement "local_a0[iVar24] = local_b0[(int)local_300[iVar24]];" (assignment_expression "local_a0[iVar24] = local_b0[(int)local_300[iVar24]]" (subscript_expression "local_a0[iVar24]" identifier [ identifier ]) = (subscript_expression "local_b0[(int)local_300[iVar24]]" identifier [ (cast_expression "(int)local_300[iVar24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_300[iVar24]" identifier [ identifier ])) ])) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (if_statement "if (iVar24 == 0x10) goto LAB_001edf11;" if (parenthesized_expression "(iVar24 == 0x10)" ( (binary_expression "iVar24 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_001edf11;" goto statement_identifier ;)) })) (expression_statement "local_a0[iVar24] = 3;" (assignment_expression "local_a0[iVar24] = 3" (subscript_expression "local_a0[iVar24]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != 0x10)" ( (binary_expression "iVar24 != 0x10" identifier != number_literal) )) ;) (labeled_statement "LAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);" statement_identifier : (expression_statement "FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);" (call_expression "FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0)" identifier (argument_list "(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) }))) (expression_statement "uVar19 = *(uint *)(iVar11 + 0x18);" (assignment_expression "uVar19 = *(uint *)(iVar11 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x18)" * (cast_expression "(uint *)(iVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(uint *)(iVar11 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(iVar11 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x1c)" * (cast_expression "(uint *)(iVar11 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = uVar1;" (assignment_expression "uVar29 = uVar1" identifier = identifier) ;) }) while (parenthesized_expression "((int)uVar1 < (int)uVar19)" ( (binary_expression "(int)uVar1 < (int)uVar19" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "local_474 = uVar35;" (assignment_expression "local_474 = uVar35" identifier = identifier) ;) }) while (parenthesized_expression "((int)uVar35 < (int)uVar15)" ( (binary_expression "(int)uVar35 < (int)uVar15" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0029eab0();\n  }" { (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 (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 (pointer_declarator * 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 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 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 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 IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 = LIT) ;) })) (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 = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (unary_expression - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (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 = 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) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 = 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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (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))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) || (binary_expression IDENT != IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (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 { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) & LIT) | (binary_expression IDENT == LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 = (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 = 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 = LIT) ;) (expression_statement (assignment_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 (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , 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 = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 IDENT (argument_list ( 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 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 = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != (unary_expression - IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 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) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * (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 = (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 ])))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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 = (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 * IDENT) + (binary_expression IDENT * IDENT)) + (binary_expression IDENT * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) )) (goto_statement goto statement_identifier ;)) })) (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 = 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)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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 IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * (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) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) ))))) ;) (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) ))))) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression (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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (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 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) ))))) ;) (labeled_statement statement_identifier : (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) ))))) ;)) (labeled_statement statement_identifier : (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) ))))) ;)) }) (else_clause else (compound_statement { (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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (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 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 = (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) )))))) ;) (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 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) ))))) ;) }) (else_clause else (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) )))))) ;) })))) }))) (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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) & LIT) | LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) & LIT) | LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (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 = 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 = (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 = (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (do_statement do (compound_statement { (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 & 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 (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)) ))))) ;) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) 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 = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == (unary_expression - IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])) ])) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;)) }) (else_clause else (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) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (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) ;)) }) (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 (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) (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) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (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) ) (field_expression IDENT . field_identifier))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })))) }))) }))) }))) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) & 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) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) & 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) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) & LIT) ))) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) }))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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) ) (field_expression IDENT . field_identifier)) < (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) = (binary_expression IDENT + (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )) * LIT) ))) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (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 = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( 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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_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 = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) , (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_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 | (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) << (parenthesized_expression ( (binary_expression (binary_expression IDENT * (char_literal ' escape_sequence ')) & LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (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 = 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 (pointer_expression * IDENT) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * IDENT) + 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 = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ;) }) while (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (unary_expression - 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 = (cast_expression ( (type_descriptor TYPE) ) (call_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) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_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) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) + IDENT) ))))) ;) (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 IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (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 <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) * (char_literal ' escape_sequence '))) ;) (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != (unary_expression - IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (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 (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_001ecea0(int param_1,undefined4 param_2)\n\n{\n  uint uVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  double dVar7;\n  float fVar8;\n  char cVar9;\n  undefined2 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  uint uVar20;\n  float *pfVar21;\n  float *pfVar22;\n  byte extraout_CL;\n  byte bVar23;\n  int iVar24;\n  byte bVar25;\n  int iVar26;\n  float fVar27;\n  byte *pbVar28;\n  uint uVar29;\n  byte bVar30;\n  byte *pbVar31;\n  byte bVar32;\n  int iVar33;\n  byte bVar34;\n  uint uVar35;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined2 in_FPUControlWord;\n  undefined8 uVar36;\n  float local_4e0;\n  float local_4dc;\n  float local_4d4;\n  float local_4d0;\n  float local_4cc;\n  float local_4c0;\n  float local_4b8;\n  float local_4b4;\n  uint local_4b0;\n  float local_4ac;\n  int local_4a8;\n  uint local_4a0;\n  uint local_474;\n  float local_44c;\n  float local_448;\n  float local_444;\n  float local_440;\n  float local_43c;\n  float local_438;\n  float local_434;\n  float local_430;\n  float local_42c;\n  float local_428;\n  float local_424;\n  float 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  undefined4 local_3d8;\n  undefined4 local_3d4;\n  undefined4 local_3d0;\n  undefined4 local_3cc;\n  undefined4 local_3c8;\n  undefined4 local_3c4;\n  undefined4 local_3c0;\n  undefined4 local_3bc;\n  undefined4 local_3b8;\n  undefined4 local_3b4;\n  undefined4 local_3b0;\n  undefined4 local_3ac;\n  undefined4 local_3a8;\n  undefined4 local_3a4;\n  undefined4 local_3a0;\n  float local_39c;\n  float local_398;\n  float local_394;\n  undefined4 local_390;\n  float local_38c;\n  undefined4 *local_388;\n  float *local_384;\n  float *local_380;\n  undefined4 *local_37c;\n  undefined4 *local_378;\n  undefined4 *local_374;\n  undefined4 *local_370;\n  float *local_36c;\n  undefined4 *local_368;\n  undefined4 *local_364;\n  undefined4 *local_360;\n  float *local_35c;\n  undefined4 local_358;\n  int local_354;\n  int local_350;\n  int local_34c;\n  int local_348;\n  int local_344;\n  uint local_340 [16];\n  float local_300 [16];\n  float local_2c0 [64];\n  float local_1c0;\n  float local_1bc;\n  float local_1b8;\n  float local_1b4;\n  float local_1b0;\n  float local_1ac;\n  float local_1a8;\n  float local_1a4;\n  float local_1a0;\n  float local_19c;\n  float local_198;\n  float local_194;\n  byte local_c0 [16];\n  byte local_b0 [16];\n  byte local_a0 [128];\n  int local_20;\n  \n  uVar36 = FUN_0004c803();\n  iVar26 = (int)((ulonglong)uVar36 >> 0x20);\n  iVar11 = (int)uVar36;\n  local_474 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar15 = *(uint *)(iVar11 + 0x1c);\n  if (0 < (int)uVar15) {\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001ecea0(int param_1,undefined4 param_2)" (identifier "FUN_001ecea0") (parameter_list "(int param_1,undefined4 param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  uint uVar1;\n  float fVar2;\n  float fVar3;\n  float fVar4;\n  float fVar5;\n  float fVar6;\n  double dVar7;\n  float fVar8;\n  char cVar9;\n  undefined2 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  byte *pbVar18;\n  uint uVar19;\n  uint uVar20;\n  float *pfVar21;\n  float *pfVar22;\n  byte extraout_CL;\n  byte bVar23;\n  int iVar24;\n  byte bVar25;\n  int iVar26;\n  float fVar27;\n  byte *pbVar28;\n  uint uVar29;\n  byte bVar30;\n  byte *pbVar31;\n  byte bVar32;\n  int iVar33;\n  byte bVar34;\n  uint uVar35;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined2 in_FPUControlWord;\n  undefined8 uVar36;\n  float local_4e0;\n  float local_4dc;\n  float local_4d4;\n  float local_4d0;\n  float local_4cc;\n  float local_4c0;\n  float local_4b8;\n  float local_4b4;\n  uint local_4b0;\n  float local_4ac;\n  int local_4a8;\n  uint local_4a0;\n  uint local_474;\n  float local_44c;\n  float local_448;\n  float local_444;\n  float local_440;\n  float local_43c;\n  float local_438;\n  float local_434;\n  float local_430;\n  float local_42c;\n  float local_428;\n  float local_424;\n  float 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  undefined4 local_3d8;\n  undefined4 local_3d4;\n  undefined4 local_3d0;\n  undefined4 local_3cc;\n  undefined4 local_3c8;\n  undefined4 local_3c4;\n  undefined4 local_3c0;\n  undefined4 local_3bc;\n  undefined4 local_3b8;\n  undefined4 local_3b4;\n  undefined4 local_3b0;\n  undefined4 local_3ac;\n  undefined4 local_3a8;\n  undefined4 local_3a4;\n  undefined4 local_3a0;\n  float local_39c;\n  float local_398;\n  float local_394;\n  undefined4 local_390;\n  float local_38c;\n  undefined4 *local_388;\n  float *local_384;\n  float *local_380;\n  undefined4 *local_37c;\n  undefined4 *local_378;\n  undefined4 *local_374;\n  undefined4 *local_370;\n  float *local_36c;\n  undefined4 *local_368;\n  undefined4 *local_364;\n  undefined4 *local_360;\n  float *local_35c;\n  undefined4 local_358;\n  int local_354;\n  int local_350;\n  int local_34c;\n  int local_348;\n  int local_344;\n  uint local_340 [16];\n  float local_300 [16];\n  float local_2c0 [64];\n  float local_1c0;\n  float local_1bc;\n  float local_1b8;\n  float local_1b4;\n  float local_1b0;\n  float local_1ac;\n  float local_1a8;\n  float local_1a4;\n  float local_1a0;\n  float local_19c;\n  float local_198;\n  float local_194;\n  byte local_c0 [16];\n  byte local_b0 [16];\n  byte local_a0 [128];\n  int local_20;\n  \n  uVar36 = FUN_0004c803();\n  iVar26 = (int)((ulonglong)uVar36 >> 0x20);\n  iVar11 = (int)uVar36;\n  local_474 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar15 = *(uint *)(iVar11 + 0x1c);\n  if (0 < (int)uVar15) {\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "float fVar2;" (primitive_type "float") (identifier "fVar2") (; ";")) (declaration "float fVar3;" (primitive_type "float") (identifier "fVar3") (; ";")) (declaration "float fVar4;" (primitive_type "float") (identifier "fVar4") (; ";")) (declaration "float fVar5;" (primitive_type "float") (identifier "fVar5") (; ";")) (declaration "float fVar6;" (primitive_type "float") (identifier "fVar6") (; ";")) (declaration "double dVar7;" (primitive_type "double") (identifier "dVar7") (; ";")) (declaration "float fVar8;" (primitive_type "float") (identifier "fVar8") (; ";")) (declaration "char cVar9;" (primitive_type "char") (identifier "cVar9") (; ";")) (declaration "undefined2 uVar10;" (type_identifier "undefined2") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "float *pfVar21;" (primitive_type "float") (pointer_declarator "*pfVar21" (* "*") (identifier "pfVar21")) (; ";")) (declaration "float *pfVar22;" (primitive_type "float") (pointer_declarator "*pfVar22" (* "*") (identifier "pfVar22")) (; ";")) (declaration "byte extraout_CL;" (type_identifier "byte") (identifier "extraout_CL") (; ";")) (declaration "byte bVar23;" (type_identifier "byte") (identifier "bVar23") (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "byte bVar25;" (type_identifier "byte") (identifier "bVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "float fVar27;" (primitive_type "float") (identifier "fVar27") (; ";")) (declaration "byte *pbVar28;" (type_identifier "byte") (pointer_declarator "*pbVar28" (* "*") (identifier "pbVar28")) (; ";")) (declaration "uint uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (declaration "byte bVar30;" (type_identifier "byte") (identifier "bVar30") (; ";")) (declaration "byte *pbVar31;" (type_identifier "byte") (pointer_declarator "*pbVar31" (* "*") (identifier "pbVar31")) (; ";")) (declaration "byte bVar32;" (type_identifier "byte") (identifier "bVar32") (; ";")) (declaration "int iVar33;" (primitive_type "int") (identifier "iVar33") (; ";")) (declaration "byte bVar34;" (type_identifier "byte") (identifier "bVar34") (; ";")) (declaration "uint uVar35;" (type_identifier "uint") (identifier "uVar35") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined2 in_FPUControlWord;" (type_identifier "undefined2") (identifier "in_FPUControlWord") (; ";")) (declaration "undefined8 uVar36;" (type_identifier "undefined8") (identifier "uVar36") (; ";")) (declaration "float local_4e0;" (primitive_type "float") (identifier "local_4e0") (; ";")) (declaration "float local_4dc;" (primitive_type "float") (identifier "local_4dc") (; ";")) (declaration "float local_4d4;" (primitive_type "float") (identifier "local_4d4") (; ";")) (declaration "float local_4d0;" (primitive_type "float") (identifier "local_4d0") (; ";")) (declaration "float local_4cc;" (primitive_type "float") (identifier "local_4cc") (; ";")) (declaration "float local_4c0;" (primitive_type "float") (identifier "local_4c0") (; ";")) (declaration "float local_4b8;" (primitive_type "float") (identifier "local_4b8") (; ";")) (declaration "float local_4b4;" (primitive_type "float") (identifier "local_4b4") (; ";")) (declaration "uint local_4b0;" (type_identifier "uint") (identifier "local_4b0") (; ";")) (declaration "float local_4ac;" (primitive_type "float") (identifier "local_4ac") (; ";")) (declaration "int local_4a8;" (primitive_type "int") (identifier "local_4a8") (; ";")) (declaration "uint local_4a0;" (type_identifier "uint") (identifier "local_4a0") (; ";")) (declaration "uint local_474;" (type_identifier "uint") (identifier "local_474") (; ";")) (declaration "float local_44c;" (primitive_type "float") (identifier "local_44c") (; ";")) (declaration "float local_448;" (primitive_type "float") (identifier "local_448") (; ";")) (declaration "float local_444;" (primitive_type "float") (identifier "local_444") (; ";")) (declaration "float local_440;" (primitive_type "float") (identifier "local_440") (; ";")) (declaration "float local_43c;" (primitive_type "float") (identifier "local_43c") (; ";")) (declaration "float local_438;" (primitive_type "float") (identifier "local_438") (; ";")) (declaration "float local_434;" (primitive_type "float") (identifier "local_434") (; ";")) (declaration "float local_430;" (primitive_type "float") (identifier "local_430") (; ";")) (declaration "float local_42c;" (primitive_type "float") (identifier "local_42c") (; ";")) (declaration "float local_428;" (primitive_type "float") (identifier "local_428") (; ";")) (declaration "float local_424;" (primitive_type "float") (identifier "local_424") (; ";")) (declaration "float local_420;" (primitive_type "float") (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 "undefined4 local_3d8;" (type_identifier "undefined4") (identifier "local_3d8") (; ";")) (declaration "undefined4 local_3d4;" (type_identifier "undefined4") (identifier "local_3d4") (; ";")) (declaration "undefined4 local_3d0;" (type_identifier "undefined4") (identifier "local_3d0") (; ";")) (declaration "undefined4 local_3cc;" (type_identifier "undefined4") (identifier "local_3cc") (; ";")) (declaration "undefined4 local_3c8;" (type_identifier "undefined4") (identifier "local_3c8") (; ";")) (declaration "undefined4 local_3c4;" (type_identifier "undefined4") (identifier "local_3c4") (; ";")) (declaration "undefined4 local_3c0;" (type_identifier "undefined4") (identifier "local_3c0") (; ";")) (declaration "undefined4 local_3bc;" (type_identifier "undefined4") (identifier "local_3bc") (; ";")) (declaration "undefined4 local_3b8;" (type_identifier "undefined4") (identifier "local_3b8") (; ";")) (declaration "undefined4 local_3b4;" (type_identifier "undefined4") (identifier "local_3b4") (; ";")) (declaration "undefined4 local_3b0;" (type_identifier "undefined4") (identifier "local_3b0") (; ";")) (declaration "undefined4 local_3ac;" (type_identifier "undefined4") (identifier "local_3ac") (; ";")) (declaration "undefined4 local_3a8;" (type_identifier "undefined4") (identifier "local_3a8") (; ";")) (declaration "undefined4 local_3a4;" (type_identifier "undefined4") (identifier "local_3a4") (; ";")) (declaration "undefined4 local_3a0;" (type_identifier "undefined4") (identifier "local_3a0") (; ";")) (declaration "float local_39c;" (primitive_type "float") (identifier "local_39c") (; ";")) (declaration "float local_398;" (primitive_type "float") (identifier "local_398") (; ";")) (declaration "float local_394;" (primitive_type "float") (identifier "local_394") (; ";")) (declaration "undefined4 local_390;" (type_identifier "undefined4") (identifier "local_390") (; ";")) (declaration "float local_38c;" (primitive_type "float") (identifier "local_38c") (; ";")) (declaration "undefined4 *local_388;" (type_identifier "undefined4") (pointer_declarator "*local_388" (* "*") (identifier "local_388")) (; ";")) (declaration "float *local_384;" (primitive_type "float") (pointer_declarator "*local_384" (* "*") (identifier "local_384")) (; ";")) (declaration "float *local_380;" (primitive_type "float") (pointer_declarator "*local_380" (* "*") (identifier "local_380")) (; ";")) (declaration "undefined4 *local_37c;" (type_identifier "undefined4") (pointer_declarator "*local_37c" (* "*") (identifier "local_37c")) (; ";")) (declaration "undefined4 *local_378;" (type_identifier "undefined4") (pointer_declarator "*local_378" (* "*") (identifier "local_378")) (; ";")) (declaration "undefined4 *local_374;" (type_identifier "undefined4") (pointer_declarator "*local_374" (* "*") (identifier "local_374")) (; ";")) (declaration "undefined4 *local_370;" (type_identifier "undefined4") (pointer_declarator "*local_370" (* "*") (identifier "local_370")) (; ";")) (declaration "float *local_36c;" (primitive_type "float") (pointer_declarator "*local_36c" (* "*") (identifier "local_36c")) (; ";")) (declaration "undefined4 *local_368;" (type_identifier "undefined4") (pointer_declarator "*local_368" (* "*") (identifier "local_368")) (; ";")) (declaration "undefined4 *local_364;" (type_identifier "undefined4") (pointer_declarator "*local_364" (* "*") (identifier "local_364")) (; ";")) (declaration "undefined4 *local_360;" (type_identifier "undefined4") (pointer_declarator "*local_360" (* "*") (identifier "local_360")) (; ";")) (declaration "float *local_35c;" (primitive_type "float") (pointer_declarator "*local_35c" (* "*") (identifier "local_35c")) (; ";")) (declaration "undefined4 local_358;" (type_identifier "undefined4") (identifier "local_358") (; ";")) (declaration "int local_354;" (primitive_type "int") (identifier "local_354") (; ";")) (declaration "int local_350;" (primitive_type "int") (identifier "local_350") (; ";")) (declaration "int local_34c;" (primitive_type "int") (identifier "local_34c") (; ";")) (declaration "int local_348;" (primitive_type "int") (identifier "local_348") (; ";")) (declaration "int local_344;" (primitive_type "int") (identifier "local_344") (; ";")) (declaration "uint local_340 [16];" (type_identifier "uint") (array_declarator "local_340 [16]" (identifier "local_340") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "float local_300 [16];" (primitive_type "float") (array_declarator "local_300 [16]" (identifier "local_300") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "float local_2c0 [64];" (primitive_type "float") (array_declarator "local_2c0 [64]" (identifier "local_2c0") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "float local_1c0;" (primitive_type "float") (identifier "local_1c0") (; ";")) (declaration "float local_1bc;" (primitive_type "float") (identifier "local_1bc") (; ";")) (declaration "float local_1b8;" (primitive_type "float") (identifier "local_1b8") (; ";")) (declaration "float local_1b4;" (primitive_type "float") (identifier "local_1b4") (; ";")) (declaration "float local_1b0;" (primitive_type "float") (identifier "local_1b0") (; ";")) (declaration "float local_1ac;" (primitive_type "float") (identifier "local_1ac") (; ";")) (declaration "float local_1a8;" (primitive_type "float") (identifier "local_1a8") (; ";")) (declaration "float local_1a4;" (primitive_type "float") (identifier "local_1a4") (; ";")) (declaration "float local_1a0;" (primitive_type "float") (identifier "local_1a0") (; ";")) (declaration "float local_19c;" (primitive_type "float") (identifier "local_19c") (; ";")) (declaration "float local_198;" (primitive_type "float") (identifier "local_198") (; ";")) (declaration "float local_194;" (primitive_type "float") (identifier "local_194") (; ";")) (declaration "byte local_c0 [16];" (type_identifier "byte") (array_declarator "local_c0 [16]" (identifier "local_c0") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "byte local_b0 [16];" (type_identifier "byte") (array_declarator "local_b0 [16]" (identifier "local_b0") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "byte local_a0 [128];" (type_identifier "byte") (array_declarator "local_a0 [128]" (identifier "local_a0") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "uVar36 = FUN_0004c803();" (assignment_expression "uVar36 = FUN_0004c803()" (identifier "uVar36") (= "=") (call_expression "FUN_0004c803()" (identifier "FUN_0004c803") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar26 = (int)((ulonglong)uVar36 >> 0x20);" (assignment_expression "iVar26 = (int)((ulonglong)uVar36 >> 0x20)" (identifier "iVar26") (= "=") (cast_expression "(int)((ulonglong)uVar36 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar36 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar36 >> 0x20" (cast_expression "(ulonglong)uVar36" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar36")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar11 = (int)uVar36;" (assignment_expression "iVar11 = (int)uVar36" (identifier "iVar11") (= "=") (cast_expression "(int)uVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar36"))) (; ";")) (expression_statement "local_474 = 0;" (assignment_expression "local_474 = 0" (identifier "local_474") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar15 = *(uint *)(iVar11 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(iVar11 + 0x1c)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(iVar11 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar11 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1c)" (( "(") (binary_expression "iVar11 + 0x1c" (identifier "iVar11") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (0 < (int)uVar15) {\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }" (if "if") (parenthesized_expression "(0 < (int)uVar15)" (( "(") (binary_expression "0 < (int)uVar15" (number_literal "0") (< "<") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15"))) () ")")) (compound_statement "{\n    do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);\n  }" ({ "{") (do_statement "do {\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    } while ((int)uVar35 < (int)uVar15);" (do "do") (compound_statement "{\n      uVar19 = *(uint *)(iVar11 + 0x18);\n      uVar35 = local_474 + 4;\n      uVar29 = 0;\n      if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }\n      local_474 = uVar35;\n    }" ({ "{") (expression_statement "uVar19 = *(uint *)(iVar11 + 0x18);" (assignment_expression "uVar19 = *(uint *)(iVar11 + 0x18)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(iVar11 + 0x18)" (* "*") (cast_expression "(uint *)(iVar11 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x18)" (( "(") (binary_expression "iVar11 + 0x18" (identifier "iVar11") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar35 = local_474 + 4;" (assignment_expression "uVar35 = local_474 + 4" (identifier "uVar35") (= "=") (binary_expression "local_474 + 4" (identifier "local_474") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)uVar19) {\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }" (if "if") (parenthesized_expression "(0 < (int)uVar19)" (( "(") (binary_expression "0 < (int)uVar19" (number_literal "0") (< "<") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) () ")")) (compound_statement "{\n        do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);\n      }" ({ "{") (do_statement "do {\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        } while ((int)uVar1 < (int)uVar19);" (do "do") (compound_statement "{\n          uVar1 = uVar29 + 4;\n          iVar24 = uVar19 - uVar29;\n          if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }\n          iVar12 = uVar15 - local_474;\n          if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }\n          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);\n          if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }\n          iVar13 = 0;\n          do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);\n          if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }\n          uVar19 = *(uint *)(iVar11 + 0x18);\n          uVar15 = *(uint *)(iVar11 + 0x1c);\n          uVar29 = uVar1;\n        }" ({ "{") (expression_statement "uVar1 = uVar29 + 4;" (assignment_expression "uVar1 = uVar29 + 4" (identifier "uVar1") (= "=") (binary_expression "uVar29 + 4" (identifier "uVar29") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar24 = uVar19 - uVar29;" (assignment_expression "iVar24 = uVar19 - uVar29" (identifier "iVar24") (= "=") (binary_expression "uVar19 - uVar29" (identifier "uVar19") (- "-") (identifier "uVar29"))) (; ";")) (if_statement "if (uVar1 < uVar19) {\n            iVar24 = 4;\n          }" (if "if") (parenthesized_expression "(uVar1 < uVar19)" (( "(") (binary_expression "uVar1 < uVar19" (identifier "uVar1") (< "<") (identifier "uVar19")) () ")")) (compound_statement "{\n            iVar24 = 4;\n          }" ({ "{") (expression_statement "iVar24 = 4;" (assignment_expression "iVar24 = 4" (identifier "iVar24") (= "=") (number_literal "4")) (; ";")) (} "}"))) (expression_statement "iVar12 = uVar15 - local_474;" (assignment_expression "iVar12 = uVar15 - local_474" (identifier "iVar12") (= "=") (binary_expression "uVar15 - local_474" (identifier "uVar15") (- "-") (identifier "local_474"))) (; ";")) (if_statement "if (uVar35 < uVar15) {\n            iVar12 = 4;\n          }" (if "if") (parenthesized_expression "(uVar35 < uVar15)" (( "(") (binary_expression "uVar35 < uVar15" (identifier "uVar35") (< "<") (identifier "uVar15")) () ")")) (compound_statement "{\n            iVar12 = 4;\n          }" ({ "{") (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" (identifier "iVar12") (= "=") (number_literal "4")) (; ";")) (} "}"))) (expression_statement "local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);" (assignment_expression "local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2)" (identifier "local_4a8") (= "=") (call_expression "GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2)" (identifier "GetVirtualPixels") (argument_list "(iVar11,uVar29,local_474,iVar24,iVar12,param_2)" (( "(") (identifier "iVar11") (, ",") (identifier "uVar29") (, ",") (identifier "local_474") (, ",") (identifier "iVar24") (, ",") (identifier "iVar12") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (local_4a8 == 0) {\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }" (if "if") (parenthesized_expression "(local_4a8 == 0)" (( "(") (binary_expression "local_4a8 == 0" (identifier "local_4a8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar15 = *(uint *)(iVar11 + 0x1c);\n            break;\n          }" ({ "{") (expression_statement "uVar15 = *(uint *)(iVar11 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(iVar11 + 0x1c)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(iVar11 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar11 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1c)" (( "(") (binary_expression "iVar11 + 0x1c" (identifier "iVar11") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          } while (iVar13 != 0x10);" (do "do") (compound_statement "{\n            local_300[iVar13] = -NAN;\n            local_340[iVar13] = 0xffffffff;\n            iVar13 = iVar13 + 1;\n          }" ({ "{") (expression_statement "local_300[iVar13] = -NAN;" (assignment_expression "local_300[iVar13] = -NAN" (subscript_expression "local_300[iVar13]" (identifier "local_300") ([ "[") (identifier "iVar13") (] "]")) (= "=") (unary_expression "-NAN" (- "-") (identifier "NAN"))) (; ";")) (expression_statement "local_340[iVar13] = 0xffffffff;" (assignment_expression "local_340[iVar13] = 0xffffffff" (subscript_expression "local_340[iVar13]" (identifier "local_340") ([ "[") (identifier "iVar13") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != 0x10)" (( "(") (binary_expression "iVar13 != 0x10" (identifier "iVar13") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (if_statement "if (iVar12 < 1) {\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }\n          else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }" (if "if") (parenthesized_expression "(iVar12 < 1)" (( "(") (binary_expression "iVar12 < 1" (identifier "iVar12") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n            if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }\n            local_4d4 = 0.0;\n            local_4d0 = 0.0;\n            local_4e0 = 0.0;\n            local_4c0 = 0.0;\n            local_4dc = 0.0;\n            local_4cc = 0.0;\n            fVar2 = 0.0;\n            fVar3 = local_4c0;\nLAB_001ed457:\n            local_4c0 = fVar3;\n            local_438 = 0.0;\n            local_43c = 0.0;\n            local_440 = 0.0;\n            local_444 = 0.0;\n            local_448 = 0.0;\n            local_44c = 0.0;\n            fVar6 = 1.0;\n            iVar24 = 8;\n            fVar3 = 1.0;\n            fVar4 = 1.0;\n            do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);\n            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;\n            if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\nLAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);\n          }" ({ "{") (if_statement "if (iVar26 == 0x35545844) {\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }" (if "if") (parenthesized_expression "(iVar26 == 0x35545844)" (( "(") (binary_expression "iVar26 == 0x35545844" (identifier "iVar26") (== "==") (number_literal "0x35545844")) () ")")) (compound_statement "{\n              local_4d4 = 0.0;\n              local_4b0 = 0xff;\n              local_4b8 = 0.0;\n              local_4a0 = 5;\n              local_4ac = 0.0;\n              goto LAB_001ee710;\n            }" ({ "{") (expression_statement "local_4d4 = 0.0;" (assignment_expression "local_4d4 = 0.0" (identifier "local_4d4") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4b0 = 0xff;" (assignment_expression "local_4b0 = 0xff" (identifier "local_4b0") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "local_4b8 = 0.0;" (assignment_expression "local_4b8 = 0.0" (identifier "local_4b8") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4a0 = 5;" (assignment_expression "local_4a0 = 5" (identifier "local_4a0") (= "=") (number_literal "5")) (; ";")) (expression_statement "local_4ac = 0.0;" (assignment_expression "local_4ac = 0.0" (identifier "local_4ac") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_001ee710;" (goto "goto") (statement_identifier "LAB_001ee710") (; ";")) (} "}"))) (expression_statement "local_4d4 = 0.0;" (assignment_expression "local_4d4 = 0.0" (identifier "local_4d4") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" (identifier "local_4d0") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" (identifier "local_4e0") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" (identifier "local_4c0") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" (identifier "local_4dc") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" (identifier "local_4cc") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" (identifier "fVar2") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar3 = local_4c0;" (assignment_expression "fVar3 = local_4c0" (identifier "fVar3") (= "=") (identifier "local_4c0")) (; ";")) (labeled_statement "LAB_001ed457:\n            local_4c0 = fVar3;" (statement_identifier "LAB_001ed457") (: ":") (expression_statement "local_4c0 = fVar3;" (assignment_expression "local_4c0 = fVar3" (identifier "local_4c0") (= "=") (identifier "fVar3")) (; ";"))) (expression_statement "local_438 = 0.0;" (assignment_expression "local_438 = 0.0" (identifier "local_438") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_43c = 0.0;" (assignment_expression "local_43c = 0.0" (identifier "local_43c") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_440 = 0.0;" (assignment_expression "local_440 = 0.0" (identifier "local_440") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_444 = 0.0;" (assignment_expression "local_444 = 0.0" (identifier "local_444") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_448 = 0.0;" (assignment_expression "local_448 = 0.0" (identifier "local_448") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_44c = 0.0;" (assignment_expression "local_44c = 0.0" (identifier "local_44c") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar6 = 1.0;" (assignment_expression "fVar6 = 1.0" (identifier "fVar6") (= "=") (number_literal "1.0")) (; ";")) (expression_statement "iVar24 = 8;" (assignment_expression "iVar24 = 8" (identifier "iVar24") (= "=") (number_literal "8")) (; ";")) (expression_statement "fVar3 = 1.0;" (assignment_expression "fVar3 = 1.0" (identifier "fVar3") (= "=") (number_literal "1.0")) (; ";")) (expression_statement "fVar4 = 1.0;" (assignment_expression "fVar4 = 1.0" (identifier "fVar4") (= "=") (number_literal "1.0")) (; ";")) (do_statement "do {\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            } while (iVar24 != 0);" (do "do") (compound_statement "{\n              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;\n              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;\n              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;\n              fVar3 = fVar5;\n              if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }\n              fVar4 = fVar8;\n              if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }\n              if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }\n              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }\n              iVar24 = iVar24 + -1;\n              fVar4 = fVar8 * fVar6;\n              fVar3 = fVar27 * fVar6;\n              fVar6 = fVar6 * fVar5;\n            }" ({ "{") (expression_statement "fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;" (assignment_expression "fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4" (identifier "fVar8") (= "=") (binary_expression "local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4" (binary_expression "local_4dc * fVar6 + fVar2 * fVar3" (binary_expression "local_4dc * fVar6" (identifier "local_4dc") (* "*") (identifier "fVar6")) (+ "+") (binary_expression "fVar2 * fVar3" (identifier "fVar2") (* "*") (identifier "fVar3"))) (+ "+") (binary_expression "local_4cc * fVar4" (identifier "local_4cc") (* "*") (identifier "fVar4")))) (; ";")) (expression_statement "fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;" (assignment_expression "fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4" (identifier "fVar27") (= "=") (binary_expression "local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4" (binary_expression "local_4e0 * fVar6 + local_4c0 * fVar3" (binary_expression "local_4e0 * fVar6" (identifier "local_4e0") (* "*") (identifier "fVar6")) (+ "+") (binary_expression "local_4c0 * fVar3" (identifier "local_4c0") (* "*") (identifier "fVar3"))) (+ "+") (binary_expression "fVar2 * fVar4" (identifier "fVar2") (* "*") (identifier "fVar4")))) (; ";")) (expression_statement "fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;" (assignment_expression "fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc" (identifier "fVar5") (= "=") (binary_expression "fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc" (binary_expression "fVar6 * local_4d0 + fVar3 * local_4e0" (binary_expression "fVar6 * local_4d0" (identifier "fVar6") (* "*") (identifier "local_4d0")) (+ "+") (binary_expression "fVar3 * local_4e0" (identifier "fVar3") (* "*") (identifier "local_4e0"))) (+ "+") (binary_expression "fVar4 * local_4dc" (identifier "fVar4") (* "*") (identifier "local_4dc")))) (; ";")) (expression_statement "fVar3 = fVar5;" (assignment_expression "fVar3 = fVar5" (identifier "fVar3") (= "=") (identifier "fVar5")) (; ";")) (if_statement "if (fVar5 <= fVar27 || fVar27 != fVar5) {\n                fVar3 = fVar27;\n              }" (if "if") (parenthesized_expression "(fVar5 <= fVar27 || fVar27 != fVar5)" (( "(") (binary_expression "fVar5 <= fVar27 || fVar27 != fVar5" (binary_expression "fVar5 <= fVar27" (identifier "fVar5") (<= "<=") (identifier "fVar27")) (|| "||") (binary_expression "fVar27 != fVar5" (identifier "fVar27") (!= "!=") (identifier "fVar5"))) () ")")) (compound_statement "{\n                fVar3 = fVar27;\n              }" ({ "{") (expression_statement "fVar3 = fVar27;" (assignment_expression "fVar3 = fVar27" (identifier "fVar3") (= "=") (identifier "fVar27")) (; ";")) (} "}"))) (expression_statement "fVar4 = fVar8;" (assignment_expression "fVar4 = fVar8" (identifier "fVar4") (= "=") (identifier "fVar8")) (; ";")) (if_statement "if (fVar8 <= fVar3) {\n                fVar4 = fVar3;\n              }" (if "if") (parenthesized_expression "(fVar8 <= fVar3)" (( "(") (binary_expression "fVar8 <= fVar3" (identifier "fVar8") (<= "<=") (identifier "fVar3")) () ")")) (compound_statement "{\n                fVar4 = fVar3;\n              }" ({ "{") (expression_statement "fVar4 = fVar3;" (assignment_expression "fVar4 = fVar3" (identifier "fVar4") (= "=") (identifier "fVar3")) (; ";")) (} "}"))) (if_statement "if (fVar4 < 0.0) {\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }\n              else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }" (if "if") (parenthesized_expression "(fVar4 < 0.0)" (( "(") (binary_expression "fVar4 < 0.0" (identifier "fVar4") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                fVar3 = -fVar4;\n                fVar6 = -1.0;\n              }" ({ "{") (expression_statement "fVar3 = -fVar4;" (assignment_expression "fVar3 = -fVar4" (identifier "fVar3") (= "=") (unary_expression "-fVar4" (- "-") (identifier "fVar4"))) (; ";")) (expression_statement "fVar6 = -1.0;" (assignment_expression "fVar6 = -1.0" (identifier "fVar6") (= "=") (number_literal "-1.0")) (; ";")) (} "}")) (else_clause "else {\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }" (else "else") (compound_statement "{\n                fVar6 = 1.0;\n                fVar3 = fVar4;\n              }" ({ "{") (expression_statement "fVar6 = 1.0;" (assignment_expression "fVar6 = 1.0" (identifier "fVar6") (= "=") (number_literal "1.0")) (; ";")) (expression_statement "fVar3 = fVar4;" (assignment_expression "fVar3 = fVar4" (identifier "fVar3") (= "=") (identifier "fVar4")) (; ";")) (} "}")))) (if_statement "if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }\n              else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }" (if "if") (parenthesized_expression "((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3)" (( "(") (binary_expression "(float)*(double *)(unaff_EDI + 0xb2291) <= fVar3" (cast_expression "(float)*(double *)(unaff_EDI + 0xb2291)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(unaff_EDI + 0xb2291)" (* "*") (cast_expression "(double *)(unaff_EDI + 0xb2291)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb2291)" (( "(") (binary_expression "unaff_EDI + 0xb2291" (identifier "unaff_EDI") (+ "+") (number_literal "0xb2291")) () ")"))))) (<= "<=") (identifier "fVar3")) () ")")) (compound_statement "{\n                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;\n              }" ({ "{") (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4" (identifier "fVar6") (= "=") (binary_expression "*(float *)(unaff_EDI + 0xb2871) / fVar4" (pointer_expression "*(float *)(unaff_EDI + 0xb2871)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb2871)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb2871)" (( "(") (binary_expression "unaff_EDI + 0xb2871" (identifier "unaff_EDI") (+ "+") (number_literal "0xb2871")) () ")")))) (/ "/") (identifier "fVar4"))) (; ";")) (} "}")) (else_clause "else {\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }" (else "else") (compound_statement "{\n                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);\n              }" ({ "{") (expression_statement "fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);" (assignment_expression "fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291)" (identifier "fVar6") (= "=") (binary_expression "fVar6 / (float)*(double *)(unaff_EDI + 0xb2291)" (identifier "fVar6") (/ "/") (cast_expression "(float)*(double *)(unaff_EDI + 0xb2291)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(unaff_EDI + 0xb2291)" (* "*") (cast_expression "(double *)(unaff_EDI + 0xb2291)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb2291)" (( "(") (binary_expression "unaff_EDI + 0xb2291" (identifier "unaff_EDI") (+ "+") (number_literal "0xb2291")) () ")"))))))) (; ";")) (} "}")))) (expression_statement "iVar24 = iVar24 + -1;" (assignment_expression "iVar24 = iVar24 + -1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + -1" (identifier "iVar24") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "fVar4 = fVar8 * fVar6;" (assignment_expression "fVar4 = fVar8 * fVar6" (identifier "fVar4") (= "=") (binary_expression "fVar8 * fVar6" (identifier "fVar8") (* "*") (identifier "fVar6"))) (; ";")) (expression_statement "fVar3 = fVar27 * fVar6;" (assignment_expression "fVar3 = fVar27 * fVar6" (identifier "fVar3") (= "=") (binary_expression "fVar27 * fVar6" (identifier "fVar27") (* "*") (identifier "fVar6"))) (; ";")) (expression_statement "fVar6 = fVar6 * fVar5;" (assignment_expression "fVar6 = fVar6 * fVar5" (identifier "fVar6") (= "=") (binary_expression "fVar6 * fVar5" (identifier "fVar6") (* "*") (identifier "fVar5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;" (assignment_expression "bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0" (identifier "bVar25") (= "=") (binary_expression "(extraout_CL ^ 1) & 1 | local_4d4 == 0.0" (binary_expression "(extraout_CL ^ 1) & 1" (parenthesized_expression "(extraout_CL ^ 1)" (( "(") (binary_expression "extraout_CL ^ 1" (identifier "extraout_CL") (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1")) (| "|") (binary_expression "local_4d4 == 0.0" (identifier "local_4d4") (== "==") (number_literal "0.0")))) (; ";")) (if_statement "if (bVar25 == 0) {\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }\n            else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }" (if "if") (parenthesized_expression "(bVar25 == 0)" (( "(") (binary_expression "bVar25 == 0" (identifier "bVar25") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_3d0 = 0x3de38e39;\n              local_41c = 0x3f800000;\n              local_418 = 0x3f800000;\n              local_414 = 0x3f800000;\n              local_410 = 0x3f800000;\n              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);\n              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);\n              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);\n              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);\n              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);\n              local_3a0 = 0x3ee38e39;\n              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);\n              local_400 = 0;\n              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);\n              local_3f0 = 0;\n              local_39c = 0.0;\n              local_398 = 0.0;\n              local_394 = 0.0;\n              local_390 = 0;\n              local_408 = 0x427c0000;\n              local_3f8 = 0x3c820821;\n              local_434 = fVar4;\n              local_430 = fVar3;\n              local_42c = fVar6;\n              local_404 = local_40c;\n              local_3f4 = local_3fc;\n              local_3e8 = local_3ec;\n              local_3e4 = local_3ec;\n              local_3e0 = local_3ec;\n              local_3d8 = local_3dc;\n              local_3d4 = local_3dc;\n              local_3c8 = local_3cc;\n              local_3c4 = local_3cc;\n              local_3c0 = local_3cc;\n              local_3b8 = local_3bc;\n              local_3b4 = local_3bc;\n              local_3b0 = local_3bc;\n              local_3a8 = local_3ac;\n              local_3a4 = local_3ac;\n              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);\n              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);\n              iVar12 = 0;\n              iVar24 = 0;\n              local_4cc = 0.0;\n              local_4d0 = 0.0;\n              local_4dc = 0.0;\n              do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);\n              pbVar28 = local_a0 + iVar24 * 0x10;\n              if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }\n              if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }\n              if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }\n              if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }" ({ "{") (expression_statement "local_3d0 = 0x3de38e39;" (assignment_expression "local_3d0 = 0x3de38e39" (identifier "local_3d0") (= "=") (number_literal "0x3de38e39")) (; ";")) (expression_statement "local_41c = 0x3f800000;" (assignment_expression "local_41c = 0x3f800000" (identifier "local_41c") (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "local_418 = 0x3f800000;" (assignment_expression "local_418 = 0x3f800000" (identifier "local_418") (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "local_414 = 0x3f800000;" (assignment_expression "local_414 = 0x3f800000" (identifier "local_414") (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "local_410 = 0x3f800000;" (assignment_expression "local_410 = 0x3f800000" (identifier "local_410") (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);" (assignment_expression "local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d)" (identifier "local_3ec") (= "=") (pointer_expression "*(undefined4 *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(undefined4 *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")"))))) (; ";")) (expression_statement "local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);" (assignment_expression "local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29)" (identifier "local_3cc") (= "=") (pointer_expression "*(undefined4 *)(unaff_EDI + 0xbdd29)" (* "*") (cast_expression "(undefined4 *)(unaff_EDI + 0xbdd29)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbdd29)" (( "(") (binary_expression "unaff_EDI + 0xbdd29" (identifier "unaff_EDI") (+ "+") (number_literal "0xbdd29")) () ")"))))) (; ";")) (expression_statement "local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);" (assignment_expression "local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9)" (identifier "local_3dc") (= "=") (pointer_expression "*(undefined4 *)(unaff_EDI + 0xec3b9)" (* "*") (cast_expression "(undefined4 *)(unaff_EDI + 0xec3b9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3b9)" (( "(") (binary_expression "unaff_EDI + 0xec3b9" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3b9")) () ")"))))) (; ";")) (expression_statement "local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);" (assignment_expression "local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5)" (identifier "local_3ac") (= "=") (pointer_expression "*(undefined4 *)(unaff_EDI + 0xec3b5)" (* "*") (cast_expression "(undefined4 *)(unaff_EDI + 0xec3b5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3b5)" (( "(") (binary_expression "unaff_EDI + 0xec3b5" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3b5")) () ")"))))) (; ";")) (expression_statement "local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);" (assignment_expression "local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd)" (identifier "local_3bc") (= "=") (pointer_expression "*(undefined4 *)(unaff_EDI + 0xec3bd)" (* "*") (cast_expression "(undefined4 *)(unaff_EDI + 0xec3bd)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3bd)" (( "(") (binary_expression "unaff_EDI + 0xec3bd" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3bd")) () ")"))))) (; ";")) (expression_statement "local_3a0 = 0x3ee38e39;" (assignment_expression "local_3a0 = 0x3ee38e39" (identifier "local_3a0") (= "=") (number_literal "0x3ee38e39")) (; ";")) (expression_statement "local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);" (assignment_expression "local_40c = *(undefined4 *)(unaff_EDI + 0xd9031)" (identifier "local_40c") (= "=") (pointer_expression "*(undefined4 *)(unaff_EDI + 0xd9031)" (* "*") (cast_expression "(undefined4 *)(unaff_EDI + 0xd9031)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd9031)" (( "(") (binary_expression "unaff_EDI + 0xd9031" (identifier "unaff_EDI") (+ "+") (number_literal "0xd9031")) () ")"))))) (; ";")) (expression_statement "local_400 = 0;" (assignment_expression "local_400 = 0" (identifier "local_400") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad)" (identifier "local_3fc") (= "=") (pointer_expression "*(undefined4 *)(unaff_EDI + 0xec3ad)" (* "*") (cast_expression "(undefined4 *)(unaff_EDI + 0xec3ad)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3ad)" (( "(") (binary_expression "unaff_EDI + 0xec3ad" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3ad")) () ")"))))) (; ";")) (expression_statement "local_3f0 = 0;" (assignment_expression "local_3f0 = 0" (identifier "local_3f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_39c = 0.0;" (assignment_expression "local_39c = 0.0" (identifier "local_39c") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_398 = 0.0;" (assignment_expression "local_398 = 0.0" (identifier "local_398") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_394 = 0.0;" (assignment_expression "local_394 = 0.0" (identifier "local_394") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_390 = 0;" (assignment_expression "local_390 = 0" (identifier "local_390") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_408 = 0x427c0000;" (assignment_expression "local_408 = 0x427c0000" (identifier "local_408") (= "=") (number_literal "0x427c0000")) (; ";")) (expression_statement "local_3f8 = 0x3c820821;" (assignment_expression "local_3f8 = 0x3c820821" (identifier "local_3f8") (= "=") (number_literal "0x3c820821")) (; ";")) (expression_statement "local_434 = fVar4;" (assignment_expression "local_434 = fVar4" (identifier "local_434") (= "=") (identifier "fVar4")) (; ";")) (expression_statement "local_430 = fVar3;" (assignment_expression "local_430 = fVar3" (identifier "local_430") (= "=") (identifier "fVar3")) (; ";")) (expression_statement "local_42c = fVar6;" (assignment_expression "local_42c = fVar6" (identifier "local_42c") (= "=") (identifier "fVar6")) (; ";")) (expression_statement "local_404 = local_40c;" (assignment_expression "local_404 = local_40c" (identifier "local_404") (= "=") (identifier "local_40c")) (; ";")) (expression_statement "local_3f4 = local_3fc;" (assignment_expression "local_3f4 = local_3fc" (identifier "local_3f4") (= "=") (identifier "local_3fc")) (; ";")) (expression_statement "local_3e8 = local_3ec;" (assignment_expression "local_3e8 = local_3ec" (identifier "local_3e8") (= "=") (identifier "local_3ec")) (; ";")) (expression_statement "local_3e4 = local_3ec;" (assignment_expression "local_3e4 = local_3ec" (identifier "local_3e4") (= "=") (identifier "local_3ec")) (; ";")) (expression_statement "local_3e0 = local_3ec;" (assignment_expression "local_3e0 = local_3ec" (identifier "local_3e0") (= "=") (identifier "local_3ec")) (; ";")) (expression_statement "local_3d8 = local_3dc;" (assignment_expression "local_3d8 = local_3dc" (identifier "local_3d8") (= "=") (identifier "local_3dc")) (; ";")) (expression_statement "local_3d4 = local_3dc;" (assignment_expression "local_3d4 = local_3dc" (identifier "local_3d4") (= "=") (identifier "local_3dc")) (; ";")) (expression_statement "local_3c8 = local_3cc;" (assignment_expression "local_3c8 = local_3cc" (identifier "local_3c8") (= "=") (identifier "local_3cc")) (; ";")) (expression_statement "local_3c4 = local_3cc;" (assignment_expression "local_3c4 = local_3cc" (identifier "local_3c4") (= "=") (identifier "local_3cc")) (; ";")) (expression_statement "local_3c0 = local_3cc;" (assignment_expression "local_3c0 = local_3cc" (identifier "local_3c0") (= "=") (identifier "local_3cc")) (; ";")) (expression_statement "local_3b8 = local_3bc;" (assignment_expression "local_3b8 = local_3bc" (identifier "local_3b8") (= "=") (identifier "local_3bc")) (; ";")) (expression_statement "local_3b4 = local_3bc;" (assignment_expression "local_3b4 = local_3bc" (identifier "local_3b4") (= "=") (identifier "local_3bc")) (; ";")) (expression_statement "local_3b0 = local_3bc;" (assignment_expression "local_3b0 = local_3bc" (identifier "local_3b0") (= "=") (identifier "local_3bc")) (; ";")) (expression_statement "local_3a8 = local_3ac;" (assignment_expression "local_3a8 = local_3ac" (identifier "local_3a8") (= "=") (identifier "local_3ac")) (; ";")) (expression_statement "local_3a4 = local_3ac;" (assignment_expression "local_3a4 = local_3ac" (identifier "local_3a4") (= "=") (identifier "local_3ac")) (; ";")) (expression_statement "FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);" (call_expression "FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0)" (identifier "FUN_001e9500") (argument_list "(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0)" (( "(") (identifier "fVar4") (, ",") (identifier "fVar3") (, ",") (identifier "fVar6") (, ",") (pointer_expression "&local_1c0" (& "&") (identifier "local_1c0")) (, ",") (pointer_expression "&local_39c" (& "&") (identifier "local_39c")) (, ",") (identifier "local_a0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_4c0 = *(float *)(unaff_EDI + 0xec3a1);" (assignment_expression "local_4c0 = *(float *)(unaff_EDI + 0xec3a1)" (identifier "local_4c0") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xec3a1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec3a1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3a1)" (( "(") (binary_expression "unaff_EDI + 0xec3a1" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3a1")) () ")"))))) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" (identifier "local_4cc") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" (identifier "local_4d0") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" (identifier "local_4dc") (= "=") (number_literal "0.0")) (; ";")) (do_statement "do {\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              } while (iVar17 != 0);" (do "do") (compound_statement "{\n                uVar16 = GetMagickResourceLimit(7);\n                local_350 = (int)local_4dc;\n                local_358 = local_4c0;\n                local_34c = (int)local_4d0;\n                local_348 = (int)local_4cc;\n                local_38c = local_4d4;\n                local_388 = &local_41c;\n                local_384 = &local_440;\n                local_380 = &local_44c;\n                local_37c = &local_40c;\n                local_378 = &local_3fc;\n                local_374 = &local_3ec;\n                local_370 = &local_3dc;\n                local_36c = &local_1c0;\n                local_368 = &local_3cc;\n                local_364 = &local_3bc;\n                local_360 = &local_3ac;\n                local_35c = &local_39c;\n                local_354 = iVar24;\n                local_344 = iVar12;\n                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);\n                iVar14 = local_348;\n                iVar33 = local_34c;\n                iVar13 = local_350;\n                iVar24 = local_354;\n                local_4c0 = (float)local_358;\n                local_4dc = (float)local_350;\n                local_4d0 = (float)local_34c;\n                local_4cc = (float)local_348;\n                if (iVar12 != local_354) break;\n                iVar12 = iVar12 + 1;\n                if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }\n                local_428 = local_44c - local_440;\n                local_424 = local_448 - local_43c;\n                local_420 = local_444 - local_438;\n                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);\n              }" ({ "{") (expression_statement "uVar16 = GetMagickResourceLimit(7);" (assignment_expression "uVar16 = GetMagickResourceLimit(7)" (identifier "uVar16") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "local_350 = (int)local_4dc;" (assignment_expression "local_350 = (int)local_4dc" (identifier "local_350") (= "=") (cast_expression "(int)local_4dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4dc"))) (; ";")) (expression_statement "local_358 = local_4c0;" (assignment_expression "local_358 = local_4c0" (identifier "local_358") (= "=") (identifier "local_4c0")) (; ";")) (expression_statement "local_34c = (int)local_4d0;" (assignment_expression "local_34c = (int)local_4d0" (identifier "local_34c") (= "=") (cast_expression "(int)local_4d0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d0"))) (; ";")) (expression_statement "local_348 = (int)local_4cc;" (assignment_expression "local_348 = (int)local_4cc" (identifier "local_348") (= "=") (cast_expression "(int)local_4cc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4cc"))) (; ";")) (expression_statement "local_38c = local_4d4;" (assignment_expression "local_38c = local_4d4" (identifier "local_38c") (= "=") (identifier "local_4d4")) (; ";")) (expression_statement "local_388 = &local_41c;" (assignment_expression "local_388 = &local_41c" (identifier "local_388") (= "=") (pointer_expression "&local_41c" (& "&") (identifier "local_41c"))) (; ";")) (expression_statement "local_384 = &local_440;" (assignment_expression "local_384 = &local_440" (identifier "local_384") (= "=") (pointer_expression "&local_440" (& "&") (identifier "local_440"))) (; ";")) (expression_statement "local_380 = &local_44c;" (assignment_expression "local_380 = &local_44c" (identifier "local_380") (= "=") (pointer_expression "&local_44c" (& "&") (identifier "local_44c"))) (; ";")) (expression_statement "local_37c = &local_40c;" (assignment_expression "local_37c = &local_40c" (identifier "local_37c") (= "=") (pointer_expression "&local_40c" (& "&") (identifier "local_40c"))) (; ";")) (expression_statement "local_378 = &local_3fc;" (assignment_expression "local_378 = &local_3fc" (identifier "local_378") (= "=") (pointer_expression "&local_3fc" (& "&") (identifier "local_3fc"))) (; ";")) (expression_statement "local_374 = &local_3ec;" (assignment_expression "local_374 = &local_3ec" (identifier "local_374") (= "=") (pointer_expression "&local_3ec" (& "&") (identifier "local_3ec"))) (; ";")) (expression_statement "local_370 = &local_3dc;" (assignment_expression "local_370 = &local_3dc" (identifier "local_370") (= "=") (pointer_expression "&local_3dc" (& "&") (identifier "local_3dc"))) (; ";")) (expression_statement "local_36c = &local_1c0;" (assignment_expression "local_36c = &local_1c0" (identifier "local_36c") (= "=") (pointer_expression "&local_1c0" (& "&") (identifier "local_1c0"))) (; ";")) (expression_statement "local_368 = &local_3cc;" (assignment_expression "local_368 = &local_3cc" (identifier "local_368") (= "=") (pointer_expression "&local_3cc" (& "&") (identifier "local_3cc"))) (; ";")) (expression_statement "local_364 = &local_3bc;" (assignment_expression "local_364 = &local_3bc" (identifier "local_364") (= "=") (pointer_expression "&local_3bc" (& "&") (identifier "local_3bc"))) (; ";")) (expression_statement "local_360 = &local_3ac;" (assignment_expression "local_360 = &local_3ac" (identifier "local_360") (= "=") (pointer_expression "&local_3ac" (& "&") (identifier "local_3ac"))) (; ";")) (expression_statement "local_35c = &local_39c;" (assignment_expression "local_35c = &local_39c" (identifier "local_35c") (= "=") (pointer_expression "&local_39c" (& "&") (identifier "local_39c"))) (; ";")) (expression_statement "local_354 = iVar24;" (assignment_expression "local_354 = iVar24" (identifier "local_354") (= "=") (identifier "iVar24")) (; ";")) (expression_statement "local_344 = iVar12;" (assignment_expression "local_344 = iVar12" (identifier "local_344") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);" (call_expression "GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0)" (identifier "GOMP_parallel") (argument_list "(unaff_EDI + -0xd87,&local_38c,uVar16,0)" (( "(") (binary_expression "unaff_EDI + -0xd87" (identifier "unaff_EDI") (+ "+") (number_literal "-0xd87")) (, ",") (pointer_expression "&local_38c" (& "&") (identifier "local_38c")) (, ",") (identifier "uVar16") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar14 = local_348;" (assignment_expression "iVar14 = local_348" (identifier "iVar14") (= "=") (identifier "local_348")) (; ";")) (expression_statement "iVar33 = local_34c;" (assignment_expression "iVar33 = local_34c" (identifier "iVar33") (= "=") (identifier "local_34c")) (; ";")) (expression_statement "iVar13 = local_350;" (assignment_expression "iVar13 = local_350" (identifier "iVar13") (= "=") (identifier "local_350")) (; ";")) (expression_statement "iVar24 = local_354;" (assignment_expression "iVar24 = local_354" (identifier "iVar24") (= "=") (identifier "local_354")) (; ";")) (expression_statement "local_4c0 = (float)local_358;" (assignment_expression "local_4c0 = (float)local_358" (identifier "local_4c0") (= "=") (cast_expression "(float)local_358" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_358"))) (; ";")) (expression_statement "local_4dc = (float)local_350;" (assignment_expression "local_4dc = (float)local_350" (identifier "local_4dc") (= "=") (cast_expression "(float)local_350" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_350"))) (; ";")) (expression_statement "local_4d0 = (float)local_34c;" (assignment_expression "local_4d0 = (float)local_34c" (identifier "local_4d0") (= "=") (cast_expression "(float)local_34c" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_34c"))) (; ";")) (expression_statement "local_4cc = (float)local_348;" (assignment_expression "local_4cc = (float)local_348" (identifier "local_4cc") (= "=") (cast_expression "(float)local_348" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_348"))) (; ";")) (if_statement "if (iVar12 != local_354) break;" (if "if") (parenthesized_expression "(iVar12 != local_354)" (( "(") (binary_expression "iVar12 != local_354" (identifier "iVar12") (!= "!=") (identifier "local_354")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar12 == 8) {\n                  iVar24 = 7;\n                  break;\n                }" (if "if") (parenthesized_expression "(iVar12 == 8)" (( "(") (binary_expression "iVar12 == 8" (identifier "iVar12") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                  iVar24 = 7;\n                  break;\n                }" ({ "{") (expression_statement "iVar24 = 7;" (assignment_expression "iVar24 = 7" (identifier "iVar24") (= "=") (number_literal "7")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "local_428 = local_44c - local_440;" (assignment_expression "local_428 = local_44c - local_440" (identifier "local_428") (= "=") (binary_expression "local_44c - local_440" (identifier "local_44c") (- "-") (identifier "local_440"))) (; ";")) (expression_statement "local_424 = local_448 - local_43c;" (assignment_expression "local_424 = local_448 - local_43c" (identifier "local_424") (= "=") (binary_expression "local_448 - local_43c" (identifier "local_448") (- "-") (identifier "local_43c"))) (; ";")) (expression_statement "local_420 = local_444 - local_438;" (assignment_expression "local_420 = local_444 - local_438" (identifier "local_420") (= "=") (binary_expression "local_444 - local_438" (identifier "local_444") (- "-") (identifier "local_438"))) (; ";")) (expression_statement "iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12);" (assignment_expression "iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12)" (identifier "iVar17") (= "=") (call_expression "FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12)" (identifier "FUN_001e9500") (argument_list "(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,\n                                      iVar12)" (( "(") (identifier "local_428") (, ",") (identifier "local_424") (, ",") (identifier "local_420") (, ",") (pointer_expression "&local_1c0" (& "&") (identifier "local_1c0")) (, ",") (pointer_expression "&local_39c" (& "&") (identifier "local_39c")) (, ",") (identifier "local_a0") (, ",") (identifier "iVar12") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "pbVar28 = local_a0 + iVar24 * 0x10;" (assignment_expression "pbVar28 = local_a0 + iVar24 * 0x10" (identifier "pbVar28") (= "=") (binary_expression "local_a0 + iVar24 * 0x10" (identifier "local_a0") (+ "+") (binary_expression "iVar24 * 0x10" (identifier "iVar24") (* "*") (number_literal "0x10")))) (; ";")) (if_statement "if (0 < iVar13) {\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }" (if "if") (parenthesized_expression "(0 < iVar13)" (( "(") (binary_expression "0 < iVar13" (number_literal "0") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n                pbVar18 = pbVar28;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);\n              }" ({ "{") (expression_statement "pbVar18 = pbVar28;" (assignment_expression "pbVar18 = pbVar28" (identifier "pbVar18") (= "=") (identifier "pbVar28")) (; ";")) (do_statement "do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                } while (pbVar28 + iVar13 != pbVar18);" (do "do") (compound_statement "{\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 0;\n                }" ({ "{") (expression_statement "bVar25 = *pbVar18;" (assignment_expression "bVar25 = *pbVar18" (identifier "bVar25") (= "=") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_b0[bVar25] = 0;" (assignment_expression "local_b0[bVar25] = 0" (subscript_expression "local_b0[bVar25]" (identifier "local_b0") ([ "[") (identifier "bVar25") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar28 + iVar13 != pbVar18)" (( "(") (binary_expression "pbVar28 + iVar13 != pbVar18" (binary_expression "pbVar28 + iVar13" (identifier "pbVar28") (+ "+") (identifier "iVar13")) (!= "!=") (identifier "pbVar18")) () ")")) (; ";")) (} "}"))) (if_statement "if (iVar13 < iVar33) {\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }" (if "if") (parenthesized_expression "(iVar13 < iVar33)" (( "(") (binary_expression "iVar13 < iVar33" (identifier "iVar13") (< "<") (identifier "iVar33")) () ")")) (compound_statement "{\n                pbVar18 = pbVar28 + iVar13;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);\n              }" ({ "{") (expression_statement "pbVar18 = pbVar28 + iVar13;" (assignment_expression "pbVar18 = pbVar28 + iVar13" (identifier "pbVar18") (= "=") (binary_expression "pbVar28 + iVar13" (identifier "pbVar28") (+ "+") (identifier "iVar13"))) (; ";")) (do_statement "do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                } while (pbVar28 + iVar33 != pbVar18);" (do "do") (compound_statement "{\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 2;\n                }" ({ "{") (expression_statement "bVar25 = *pbVar18;" (assignment_expression "bVar25 = *pbVar18" (identifier "bVar25") (= "=") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_b0[bVar25] = 2;" (assignment_expression "local_b0[bVar25] = 2" (subscript_expression "local_b0[bVar25]" (identifier "local_b0") ([ "[") (identifier "bVar25") (] "]")) (= "=") (number_literal "2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar28 + iVar33 != pbVar18)" (( "(") (binary_expression "pbVar28 + iVar33 != pbVar18" (binary_expression "pbVar28 + iVar33" (identifier "pbVar28") (+ "+") (identifier "iVar33")) (!= "!=") (identifier "pbVar18")) () ")")) (; ";")) (} "}"))) (if_statement "if (iVar33 < iVar14) {\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }" (if "if") (parenthesized_expression "(iVar33 < iVar14)" (( "(") (binary_expression "iVar33 < iVar14" (identifier "iVar33") (< "<") (identifier "iVar14")) () ")")) (compound_statement "{\n                pbVar18 = pbVar28 + iVar33;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);\n              }" ({ "{") (expression_statement "pbVar18 = pbVar28 + iVar33;" (assignment_expression "pbVar18 = pbVar28 + iVar33" (identifier "pbVar18") (= "=") (binary_expression "pbVar28 + iVar33" (identifier "pbVar28") (+ "+") (identifier "iVar33"))) (; ";")) (do_statement "do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                } while (pbVar28 + iVar14 != pbVar18);" (do "do") (compound_statement "{\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 3;\n                }" ({ "{") (expression_statement "bVar25 = *pbVar18;" (assignment_expression "bVar25 = *pbVar18" (identifier "bVar25") (= "=") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_b0[bVar25] = 3;" (assignment_expression "local_b0[bVar25] = 3" (subscript_expression "local_b0[bVar25]" (identifier "local_b0") ([ "[") (identifier "bVar25") (] "]")) (= "=") (number_literal "3")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar28 + iVar14 != pbVar18)" (( "(") (binary_expression "pbVar28 + iVar14 != pbVar18" (binary_expression "pbVar28 + iVar14" (identifier "pbVar28") (+ "+") (identifier "iVar14")) (!= "!=") (identifier "pbVar18")) () ")")) (; ";")) (} "}"))) (if_statement "if (iVar14 < (int)local_4d4) {\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }" (if "if") (parenthesized_expression "(iVar14 < (int)local_4d4)" (( "(") (binary_expression "iVar14 < (int)local_4d4" (identifier "iVar14") (< "<") (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4"))) () ")")) (compound_statement "{\n                pbVar18 = pbVar28 + iVar14;\n                do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);\n              }" ({ "{") (expression_statement "pbVar18 = pbVar28 + iVar14;" (assignment_expression "pbVar18 = pbVar28 + iVar14" (identifier "pbVar18") (= "=") (binary_expression "pbVar28 + iVar14" (identifier "pbVar28") (+ "+") (identifier "iVar14"))) (; ";")) (do_statement "do {\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                } while (pbVar28 + (int)local_4d4 != pbVar18);" (do "do") (compound_statement "{\n                  bVar25 = *pbVar18;\n                  pbVar18 = pbVar18 + 1;\n                  local_b0[bVar25] = 1;\n                }" ({ "{") (expression_statement "bVar25 = *pbVar18;" (assignment_expression "bVar25 = *pbVar18" (identifier "bVar25") (= "=") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_b0[bVar25] = 1;" (assignment_expression "local_b0[bVar25] = 1" (subscript_expression "local_b0[bVar25]" (identifier "local_b0") ([ "[") (identifier "bVar25") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar28 + (int)local_4d4 != pbVar18)" (( "(") (binary_expression "pbVar28 + (int)local_4d4 != pbVar18" (binary_expression "pbVar28 + (int)local_4d4" (identifier "pbVar28") (+ "+") (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4"))) (!= "!=") (identifier "pbVar18")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);" (do "do") (compound_statement "{\n                while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }\n                local_c0[iVar24] = 3;\n                iVar24 = iVar24 + 1;\n              }" ({ "{") (while_statement "while (local_300[iVar24] != -NAN) {\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }" (while "while") (parenthesized_expression "(local_300[iVar24] != -NAN)" (( "(") (binary_expression "local_300[iVar24] != -NAN" (subscript_expression "local_300[iVar24]" (identifier "local_300") ([ "[") (identifier "iVar24") (] "]")) (!= "!=") (unary_expression "-NAN" (- "-") (identifier "NAN"))) () ")")) (compound_statement "{\n                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];\n                  iVar24 = iVar24 + 1;\n                  if (iVar24 == 0x10) goto LAB_001edb47;\n                }" ({ "{") (expression_statement "local_c0[iVar24] = local_b0[(int)local_300[iVar24]];" (assignment_expression "local_c0[iVar24] = local_b0[(int)local_300[iVar24]]" (subscript_expression "local_c0[iVar24]" (identifier "local_c0") ([ "[") (identifier "iVar24") (] "]")) (= "=") (subscript_expression "local_b0[(int)local_300[iVar24]]" (identifier "local_b0") ([ "[") (cast_expression "(int)local_300[iVar24]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_300[iVar24]" (identifier "local_300") ([ "[") (identifier "iVar24") (] "]"))) (] "]"))) (; ";")) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar24 == 0x10) goto LAB_001edb47;" (if "if") (parenthesized_expression "(iVar24 == 0x10)" (( "(") (binary_expression "iVar24 == 0x10" (identifier "iVar24") (== "==") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_001edb47;" (goto "goto") (statement_identifier "LAB_001edb47") (; ";"))) (} "}"))) (expression_statement "local_c0[iVar24] = 3;" (assignment_expression "local_c0[iVar24] = 3" (subscript_expression "local_c0[iVar24]" (identifier "local_c0") ([ "[") (identifier "iVar24") (] "]")) (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != 0x10)" (( "(") (binary_expression "iVar24 != 0x10" (identifier "iVar24") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (} "}")) (else_clause "else {\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }" (else "else") (compound_statement "{\n              if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }\n              uVar10 = (undefined2)((uint)local_38c >> 0x10);\n              if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }\n              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);\n              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1c0 = local_440;\n              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);\n              local_1bc = local_43c;\n              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);\n              local_1b8 = local_438;\n              local_1b4 = local_44c;\n              fVar2 = *(float *)(unaff_EDI + 0xec3b5);\n              fVar3 = *(float *)(unaff_EDI + 0xec3b9);\n              local_1b0 = local_448;\n              local_1ac = local_444;\n              local_1a8 = local_44c * fVar3 + local_440 * fVar2;\n              local_1a4 = local_448 * fVar3 + local_43c * fVar2;\n              local_1a0 = local_444 * fVar3 + local_438 * fVar2;\n              local_19c = local_44c * fVar2 + local_440 * fVar3;\n              local_198 = local_448 * fVar2 + local_43c * fVar3;\n              local_194 = fVar3 * local_438 + local_444 * fVar2;\n              if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }\n              iVar24 = 0;\n              do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);\n            }" ({ "{") (if_statement "if (local_4d4 == 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }\n              else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }" (if "if") (parenthesized_expression "(local_4d4 == 0.0)" (( "(") (binary_expression "local_4d4 == 0.0" (identifier "local_4d4") (== "==") (number_literal "0.0")) () ")")) (compound_statement "{\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                local_438 = 0.0;\n                local_43c = 0.0;\nLAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;\nLAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }\n              }" ({ "{") (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar2") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")"))))) (; ";")) (expression_statement "local_438 = 0.0;" (assignment_expression "local_438 = 0.0" (identifier "local_438") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_43c = 0.0;" (assignment_expression "local_43c = 0.0" (identifier "local_43c") (= "=") (number_literal "0.0")) (; ";")) (labeled_statement "LAB_001ee1db:\n                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);" (statement_identifier "LAB_001ee1db") (: ":") (expression_statement "fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar3") (= "=") (binary_expression "local_43c * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d)" (binary_expression "local_43c * *(float *)(unaff_EDI + 0xdf975)" (identifier "local_43c") (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xdf975)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdf975)" (( "(") (binary_expression "unaff_EDI + 0xdf975" (identifier "unaff_EDI") (+ "+") (number_literal "0xdf975")) () ")"))))) (+ "+") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")")))))) (; ";"))) (labeled_statement "LAB_001ee1e7:\n                if (local_438 < 0.0) goto LAB_001ee13a;" (statement_identifier "LAB_001ee1e7") (: ":") (if_statement "if (local_438 < 0.0) goto LAB_001ee13a;" (if "if") (parenthesized_expression "(local_438 < 0.0)" (( "(") (binary_expression "local_438 < 0.0" (identifier "local_438") (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_001ee13a;" (goto "goto") (statement_identifier "LAB_001ee13a") (; ";")))) (labeled_statement "LAB_001ee1f9:\n                if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }" (statement_identifier "LAB_001ee1f9") (: ":") (if_statement "if (1.0 < local_438) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }" (if "if") (parenthesized_expression "(1.0 < local_438)" (( "(") (binary_expression "1.0 < local_438" (number_literal "1.0") (< "<") (identifier "local_438")) () ")")) (compound_statement "{\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }" ({ "{") (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xec399)" (identifier "fVar6") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xec399)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec399)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec399)" (( "(") (binary_expression "unaff_EDI + 0xec399" (identifier "unaff_EDI") (+ "+") (number_literal "0xec399")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }" (else "else") (compound_statement "{\n                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);\n                }" ({ "{") (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031)" (identifier "fVar6") (= "=") (binary_expression "*(float *)(unaff_EDI + 0xb227d) +\n                          local_438 * *(float *)(unaff_EDI + 0xd9031)" (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")")))) (+ "+") (binary_expression "local_438 * *(float *)(unaff_EDI + 0xd9031)" (identifier "local_438") (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xd9031)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd9031)" (( "(") (binary_expression "unaff_EDI + 0xd9031" (identifier "unaff_EDI") (+ "+") (number_literal "0xd9031")) () ")"))))))) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }" (else "else") (compound_statement "{\n                local_43c = local_2c0[1];\n                local_438 = local_2c0[2];\n                local_44c = local_2c0[0];\n                local_448 = local_2c0[1];\n                local_444 = local_2c0[2];\n                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];\n                local_4dc = local_2c0[0];\n                if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }\n                if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }\n                if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\n                if (0.0 <= local_438) goto LAB_001ee1f9;\nLAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }" ({ "{") (expression_statement "local_43c = local_2c0[1];" (assignment_expression "local_43c = local_2c0[1]" (identifier "local_43c") (= "=") (subscript_expression "local_2c0[1]" (identifier "local_2c0") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_438 = local_2c0[2];" (assignment_expression "local_438 = local_2c0[2]" (identifier "local_438") (= "=") (subscript_expression "local_2c0[2]" (identifier "local_2c0") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_44c = local_2c0[0];" (assignment_expression "local_44c = local_2c0[0]" (identifier "local_44c") (= "=") (subscript_expression "local_2c0[0]" (identifier "local_2c0") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_448 = local_2c0[1];" (assignment_expression "local_448 = local_2c0[1]" (identifier "local_448") (= "=") (subscript_expression "local_2c0[1]" (identifier "local_2c0") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_444 = local_2c0[2];" (assignment_expression "local_444 = local_2c0[2]" (identifier "local_444") (= "=") (subscript_expression "local_2c0[2]" (identifier "local_2c0") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];" (assignment_expression "local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0]" (identifier "local_4d0") (= "=") (binary_expression "fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0]" (binary_expression "fVar6 * local_2c0[2] + fVar3 * local_2c0[1]" (binary_expression "fVar6 * local_2c0[2]" (identifier "fVar6") (* "*") (subscript_expression "local_2c0[2]" (identifier "local_2c0") ([ "[") (number_literal "2") (] "]"))) (+ "+") (binary_expression "fVar3 * local_2c0[1]" (identifier "fVar3") (* "*") (subscript_expression "local_2c0[1]" (identifier "local_2c0") ([ "[") (number_literal "1") (] "]")))) (+ "+") (binary_expression "fVar4 * local_2c0[0]" (identifier "fVar4") (* "*") (subscript_expression "local_2c0[0]" (identifier "local_2c0") ([ "[") (number_literal "0") (] "]"))))) (; ";")) (expression_statement "local_4dc = local_2c0[0];" (assignment_expression "local_4dc = local_2c0[0]" (identifier "local_4dc") (= "=") (subscript_expression "local_2c0[0]" (identifier "local_2c0") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (1 < (int)local_4d4) {\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }" (if "if") (parenthesized_expression "(1 < (int)local_4d4)" (( "(") (binary_expression "1 < (int)local_4d4" (number_literal "1") (< "<") (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4"))) () ")")) (compound_statement "{\n                  local_4b4 = local_2c0[2];\n                  bVar32 = 0;\n                  bVar34 = 0;\n                  local_4ac = local_2c0[1];\n                  local_4b8 = local_2c0[0];\n                  pfVar21 = local_2c0;\n                  local_4cc = local_2c0[1];\n                  bVar23 = 0;\n                  local_4c0 = local_2c0[2];\n                  local_4e0 = local_4d0;\n                  bVar30 = 0;\n                  do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);\nLAB_001ee095:\n                  fVar2 = local_4cc;\n                  fVar3 = local_4c0;\n                  if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }\n                  local_438 = fVar3;\n                  local_43c = fVar2;\n                  if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }\n                  if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }\n                  if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }\n                }" ({ "{") (expression_statement "local_4b4 = local_2c0[2];" (assignment_expression "local_4b4 = local_2c0[2]" (identifier "local_4b4") (= "=") (subscript_expression "local_2c0[2]" (identifier "local_2c0") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "bVar32 = 0;" (assignment_expression "bVar32 = 0" (identifier "bVar32") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar34 = 0;" (assignment_expression "bVar34 = 0" (identifier "bVar34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4ac = local_2c0[1];" (assignment_expression "local_4ac = local_2c0[1]" (identifier "local_4ac") (= "=") (subscript_expression "local_2c0[1]" (identifier "local_2c0") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_4b8 = local_2c0[0];" (assignment_expression "local_4b8 = local_2c0[0]" (identifier "local_4b8") (= "=") (subscript_expression "local_2c0[0]" (identifier "local_2c0") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" (identifier "pfVar21") (= "=") (identifier "local_2c0")) (; ";")) (expression_statement "local_4cc = local_2c0[1];" (assignment_expression "local_4cc = local_2c0[1]" (identifier "local_4cc") (= "=") (subscript_expression "local_2c0[1]" (identifier "local_2c0") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" (identifier "bVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c0 = local_2c0[2];" (assignment_expression "local_4c0 = local_2c0[2]" (identifier "local_4c0") (= "=") (subscript_expression "local_2c0[2]" (identifier "local_2c0") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_4e0 = local_4d0;" (assignment_expression "local_4e0 = local_4d0" (identifier "local_4e0") (= "=") (identifier "local_4d0")) (; ";")) (expression_statement "bVar30 = 0;" (assignment_expression "bVar30 = 0" (identifier "bVar30") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);" (do "do") (compound_statement "{\n                    while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }\n                    if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }\n                    pfVar21 = pfVar21 + 4;\n                  }" ({ "{") (while_statement "while( true ) {\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                      fVar2 = pfVar21[4];\n                      fVar27 = pfVar21[5];\n                      fVar5 = pfVar21[6];\n                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;\n                      if (local_4e0 <= fVar8) break;\n                      pfVar21 = pfVar21 + 4;\n                      bVar30 = bVar25;\n                      local_4e0 = fVar8;\n                      local_4dc = fVar2;\n                      local_4cc = fVar27;\n                      local_4c0 = fVar5;\n                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;\n                    }" ({ "{") (expression_statement "fVar2 = pfVar21[4];" (assignment_expression "fVar2 = pfVar21[4]" (identifier "fVar2") (= "=") (subscript_expression "pfVar21[4]" (identifier "pfVar21") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "fVar27 = pfVar21[5];" (assignment_expression "fVar27 = pfVar21[5]" (identifier "fVar27") (= "=") (subscript_expression "pfVar21[5]" (identifier "pfVar21") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "fVar5 = pfVar21[6];" (assignment_expression "fVar5 = pfVar21[6]" (identifier "fVar5") (= "=") (subscript_expression "pfVar21[6]" (identifier "pfVar21") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;" (assignment_expression "fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2" (identifier "fVar8") (= "=") (binary_expression "fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2" (binary_expression "fVar6 * fVar5 + fVar3 * fVar27" (binary_expression "fVar6 * fVar5" (identifier "fVar6") (* "*") (identifier "fVar5")) (+ "+") (binary_expression "fVar3 * fVar27" (identifier "fVar3") (* "*") (identifier "fVar27"))) (+ "+") (binary_expression "fVar4 * fVar2" (identifier "fVar4") (* "*") (identifier "fVar2")))) (; ";")) (if_statement "if (local_4e0 <= fVar8) break;" (if "if") (parenthesized_expression "(local_4e0 <= fVar8)" (( "(") (binary_expression "local_4e0 <= fVar8" (identifier "local_4e0") (<= "<=") (identifier "fVar8")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pfVar21 = pfVar21 + 4;" (assignment_expression "pfVar21 = pfVar21 + 4" (identifier "pfVar21") (= "=") (binary_expression "pfVar21 + 4" (identifier "pfVar21") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "bVar30 = bVar25;" (assignment_expression "bVar30 = bVar25" (identifier "bVar30") (= "=") (identifier "bVar25")) (; ";")) (expression_statement "local_4e0 = fVar8;" (assignment_expression "local_4e0 = fVar8" (identifier "local_4e0") (= "=") (identifier "fVar8")) (; ";")) (expression_statement "local_4dc = fVar2;" (assignment_expression "local_4dc = fVar2" (identifier "local_4dc") (= "=") (identifier "fVar2")) (; ";")) (expression_statement "local_4cc = fVar27;" (assignment_expression "local_4cc = fVar27" (identifier "local_4cc") (= "=") (identifier "fVar27")) (; ";")) (expression_statement "local_4c0 = fVar5;" (assignment_expression "local_4c0 = fVar5" (identifier "local_4c0") (= "=") (identifier "fVar5")) (; ";")) (if_statement "if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;" (if "if") (parenthesized_expression "(pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4)" (( "(") (binary_expression "pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4" (identifier "pfVar21") (== "==") (binary_expression "local_2c0 + (int)local_4d4 * 4 + -4" (binary_expression "local_2c0 + (int)local_4d4 * 4" (identifier "local_2c0") (+ "+") (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-4"))) () ")")) (goto_statement "goto LAB_001ee095;" (goto "goto") (statement_identifier "LAB_001ee095") (; ";"))) (} "}"))) (if_statement "if (local_4d0 < fVar8) {\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }" (if "if") (parenthesized_expression "(local_4d0 < fVar8)" (( "(") (binary_expression "local_4d0 < fVar8" (identifier "local_4d0") (< "<") (identifier "fVar8")) () ")")) (compound_statement "{\n                      local_4d0 = fVar8;\n                      local_4b8 = fVar2;\n                      local_4b4 = fVar5;\n                      local_4ac = fVar27;\n                      bVar32 = bVar25;\n                      bVar34 = bVar25;\n                      bVar23 = bVar25;\n                    }" ({ "{") (expression_statement "local_4d0 = fVar8;" (assignment_expression "local_4d0 = fVar8" (identifier "local_4d0") (= "=") (identifier "fVar8")) (; ";")) (expression_statement "local_4b8 = fVar2;" (assignment_expression "local_4b8 = fVar2" (identifier "local_4b8") (= "=") (identifier "fVar2")) (; ";")) (expression_statement "local_4b4 = fVar5;" (assignment_expression "local_4b4 = fVar5" (identifier "local_4b4") (= "=") (identifier "fVar5")) (; ";")) (expression_statement "local_4ac = fVar27;" (assignment_expression "local_4ac = fVar27" (identifier "local_4ac") (= "=") (identifier "fVar27")) (; ";")) (expression_statement "bVar32 = bVar25;" (assignment_expression "bVar32 = bVar25" (identifier "bVar32") (= "=") (identifier "bVar25")) (; ";")) (expression_statement "bVar34 = bVar25;" (assignment_expression "bVar34 = bVar25" (identifier "bVar34") (= "=") (identifier "bVar25")) (; ";")) (expression_statement "bVar23 = bVar25;" (assignment_expression "bVar23 = bVar25" (identifier "bVar23") (= "=") (identifier "bVar25")) (; ";")) (} "}"))) (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 "(pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4)" (( "(") (binary_expression "pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4" (identifier "pfVar21") (!= "!=") (binary_expression "local_2c0 + (int)local_4d4 * 4 + -4" (binary_expression "local_2c0 + (int)local_4d4 * 4" (identifier "local_2c0") (+ "+") (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-4"))) () ")")) (; ";")) (labeled_statement "LAB_001ee095:\n                  fVar2 = local_4cc;" (statement_identifier "LAB_001ee095") (: ":") (expression_statement "fVar2 = local_4cc;" (assignment_expression "fVar2 = local_4cc" (identifier "fVar2") (= "=") (identifier "local_4cc")) (; ";"))) (expression_statement "fVar3 = local_4c0;" (assignment_expression "fVar3 = local_4c0" (identifier "fVar3") (= "=") (identifier "local_4c0")) (; ";")) (if_statement "if (bVar30 == 0) {\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }" (if "if") (parenthesized_expression "(bVar30 == 0)" (( "(") (binary_expression "bVar30 == 0" (identifier "bVar30") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    local_4dc = local_2c0[0];\n                    fVar2 = local_43c;\n                    fVar3 = local_438;\n                  }" ({ "{") (expression_statement "local_4dc = local_2c0[0];" (assignment_expression "local_4dc = local_2c0[0]" (identifier "local_4dc") (= "=") (subscript_expression "local_2c0[0]" (identifier "local_2c0") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "fVar2 = local_43c;" (assignment_expression "fVar2 = local_43c" (identifier "fVar2") (= "=") (identifier "local_43c")) (; ";")) (expression_statement "fVar3 = local_438;" (assignment_expression "fVar3 = local_438" (identifier "fVar3") (= "=") (identifier "local_438")) (; ";")) (} "}"))) (expression_statement "local_438 = fVar3;" (assignment_expression "local_438 = fVar3" (identifier "local_438") (= "=") (identifier "fVar3")) (; ";")) (expression_statement "local_43c = fVar2;" (assignment_expression "local_43c = fVar2" (identifier "local_43c") (= "=") (identifier "fVar2")) (; ";")) (if_statement "if (bVar34 != 0) {\n                    local_44c = local_4b8;\n                  }" (if "if") (parenthesized_expression "(bVar34 != 0)" (( "(") (binary_expression "bVar34 != 0" (identifier "bVar34") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    local_44c = local_4b8;\n                  }" ({ "{") (expression_statement "local_44c = local_4b8;" (assignment_expression "local_44c = local_4b8" (identifier "local_44c") (= "=") (identifier "local_4b8")) (; ";")) (} "}"))) (if_statement "if (bVar32 != 0) {\n                    local_448 = local_4ac;\n                  }" (if "if") (parenthesized_expression "(bVar32 != 0)" (( "(") (binary_expression "bVar32 != 0" (identifier "bVar32") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    local_448 = local_4ac;\n                  }" ({ "{") (expression_statement "local_448 = local_4ac;" (assignment_expression "local_448 = local_4ac" (identifier "local_448") (= "=") (identifier "local_4ac")) (; ";")) (} "}"))) (if_statement "if (bVar23 != 0) {\n                    local_444 = local_4b4;\n                  }" (if "if") (parenthesized_expression "(bVar23 != 0)" (( "(") (binary_expression "bVar23 != 0" (identifier "bVar23") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    local_444 = local_4b4;\n                  }" ({ "{") (expression_statement "local_444 = local_4b4;" (assignment_expression "local_444 = local_4b4" (identifier "local_444") (= "=") (identifier "local_4b4")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (0.0 <= local_4dc) {\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }\n                else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }" (if "if") (parenthesized_expression "(0.0 <= local_4dc)" (( "(") (binary_expression "0.0 <= local_4dc" (number_literal "0.0") (<= "<=") (identifier "local_4dc")) () ")")) (compound_statement "{\n                  if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }\n                }" ({ "{") (if_statement "if (local_4dc <= 1.0) {\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }\n                  else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }" (if "if") (parenthesized_expression "(local_4dc <= 1.0)" (( "(") (binary_expression "local_4dc <= 1.0" (identifier "local_4dc") (<= "<=") (number_literal "1.0")) () ")")) (compound_statement "{\n                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);\n                  }" ({ "{") (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031)" (identifier "fVar2") (= "=") (binary_expression "*(float *)(unaff_EDI + 0xb227d) +\n                            local_4dc * *(float *)(unaff_EDI + 0xd9031)" (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")")))) (+ "+") (binary_expression "local_4dc * *(float *)(unaff_EDI + 0xd9031)" (identifier "local_4dc") (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xd9031)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd9031)" (( "(") (binary_expression "unaff_EDI + 0xd9031" (identifier "unaff_EDI") (+ "+") (number_literal "0xd9031")) () ")"))))))) (; ";")) (} "}")) (else_clause "else {\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }" (else "else") (compound_statement "{\n                    fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  }" ({ "{") (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec399)" (identifier "fVar2") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xec399)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec399)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec399)" (( "(") (binary_expression "unaff_EDI + 0xec399" (identifier "unaff_EDI") (+ "+") (number_literal "0xec399")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }" (else "else") (compound_statement "{\n                  fVar2 = *(float *)(unaff_EDI + 0xb227d);\n                }" ({ "{") (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar2") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (0.0 <= local_43c) {\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }" (if "if") (parenthesized_expression "(0.0 <= local_43c)" (( "(") (binary_expression "0.0 <= local_43c" (number_literal "0.0") (<= "<=") (identifier "local_43c")) () ")")) (compound_statement "{\n                  if (local_43c <= 1.0) goto LAB_001ee1db;\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee1e7;\n                }" ({ "{") (if_statement "if (local_43c <= 1.0) goto LAB_001ee1db;" (if "if") (parenthesized_expression "(local_43c <= 1.0)" (( "(") (binary_expression "local_43c <= 1.0" (identifier "local_43c") (<= "<=") (number_literal "1.0")) () ")")) (goto_statement "goto LAB_001ee1db;" (goto "goto") (statement_identifier "LAB_001ee1db") (; ";"))) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xec39d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xec39d)" (identifier "fVar3") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xec39d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec39d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec39d)" (( "(") (binary_expression "unaff_EDI + 0xec39d" (identifier "unaff_EDI") (+ "+") (number_literal "0xec39d")) () ")"))))) (; ";")) (goto_statement "goto LAB_001ee1e7;" (goto "goto") (statement_identifier "LAB_001ee1e7") (; ";")) (} "}"))) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar3") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")"))))) (; ";")) (if_statement "if (0.0 <= local_438) goto LAB_001ee1f9;" (if "if") (parenthesized_expression "(0.0 <= local_438)" (( "(") (binary_expression "0.0 <= local_438" (number_literal "0.0") (<= "<=") (identifier "local_438")) () ")")) (goto_statement "goto LAB_001ee1f9;" (goto "goto") (statement_identifier "LAB_001ee1f9") (; ";"))) (labeled_statement "LAB_001ee13a:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);" (statement_identifier "LAB_001ee13a") (: ":") (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar6") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" (identifier "local_440") (= "=") (binary_expression "ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar2)" (identifier "ROUND") (argument_list "(fVar2)" (( "(") (identifier "fVar2") () ")"))) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec3ad)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3ad)" (( "(") (binary_expression "unaff_EDI + 0xec3ad" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3ad")) () ")")))))) (; ";")) (expression_statement "local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);" (assignment_expression "local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" (identifier "local_43c") (= "=") (binary_expression "*(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" (pointer_expression "*(float *)(unaff_EDI + 0xec3b1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec3b1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3b1)" (( "(") (binary_expression "unaff_EDI + 0xec3b1" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3b1")) () ")")))) (* "*") (call_expression "ROUND(fVar3)" (identifier "ROUND") (argument_list "(fVar3)" (( "(") (identifier "fVar3") () ")"))))) (; ";")) (expression_statement "local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad)" (identifier "local_438") (= "=") (binary_expression "ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar6)" (identifier "ROUND") (argument_list "(fVar6)" (( "(") (identifier "fVar6") () ")"))) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec3ad)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3ad)" (( "(") (binary_expression "unaff_EDI + 0xec3ad" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3ad")) () ")")))))) (; ";")) (if_statement "if (local_44c < 0.0) {\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }\n              else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }" (if "if") (parenthesized_expression "(local_44c < 0.0)" (( "(") (binary_expression "local_44c < 0.0" (identifier "local_44c") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                fVar2 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;\nLAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);\nLAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;\nLAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);\n              }" ({ "{") (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar2") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")"))))) (; ";")) (labeled_statement "LAB_001ee39c:\n                if (0.0 <= local_448) goto LAB_001ee3ad;" (statement_identifier "LAB_001ee39c") (: ":") (if_statement "if (0.0 <= local_448) goto LAB_001ee3ad;" (if "if") (parenthesized_expression "(0.0 <= local_448)" (( "(") (binary_expression "0.0 <= local_448" (number_literal "0.0") (<= "<=") (identifier "local_448")) () ")")) (goto_statement "goto LAB_001ee3ad;" (goto "goto") (statement_identifier "LAB_001ee3ad") (; ";")))) (labeled_statement "LAB_001ee81d:\n                fVar3 = *(float *)(unaff_EDI + 0xb227d);" (statement_identifier "LAB_001ee81d") (: ":") (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar3") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")"))))) (; ";"))) (labeled_statement "LAB_001ee3c3:\n                if (0.0 <= local_444) goto LAB_001ee3d4;" (statement_identifier "LAB_001ee3c3") (: ":") (if_statement "if (0.0 <= local_444) goto LAB_001ee3d4;" (if "if") (parenthesized_expression "(0.0 <= local_444)" (( "(") (binary_expression "0.0 <= local_444" (number_literal "0.0") (<= "<=") (identifier "local_444")) () ")")) (goto_statement "goto LAB_001ee3d4;" (goto "goto") (statement_identifier "LAB_001ee3d4") (; ";")))) (labeled_statement "LAB_001ee7e9:\n                fVar6 = *(float *)(unaff_EDI + 0xb227d);" (statement_identifier "LAB_001ee7e9") (: ":") (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar6") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }" (else "else") (compound_statement "{\n                if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }\n                fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);\n                if (local_448 < 0.0) goto LAB_001ee81d;\nLAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }\n                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);\n                if (local_444 < 0.0) goto LAB_001ee7e9;\nLAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }\n              }" ({ "{") (if_statement "if (1.0 < local_44c) {\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }" (if "if") (parenthesized_expression "(1.0 < local_44c)" (( "(") (binary_expression "1.0 < local_44c" (number_literal "1.0") (< "<") (identifier "local_44c")) () ")")) (compound_statement "{\n                  fVar2 = *(float *)(unaff_EDI + 0xec399);\n                  goto LAB_001ee39c;\n                }" ({ "{") (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec399)" (identifier "fVar2") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xec399)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec399)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec399)" (( "(") (binary_expression "unaff_EDI + 0xec399" (identifier "unaff_EDI") (+ "+") (number_literal "0xec399")) () ")"))))) (; ";")) (goto_statement "goto LAB_001ee39c;" (goto "goto") (statement_identifier "LAB_001ee39c") (; ";")) (} "}"))) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031)" (identifier "fVar2") (= "=") (binary_expression "*(float *)(unaff_EDI + 0xb227d) +\n                        local_44c * *(float *)(unaff_EDI + 0xd9031)" (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")")))) (+ "+") (binary_expression "local_44c * *(float *)(unaff_EDI + 0xd9031)" (identifier "local_44c") (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xd9031)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd9031)" (( "(") (binary_expression "unaff_EDI + 0xd9031" (identifier "unaff_EDI") (+ "+") (number_literal "0xd9031")) () ")"))))))) (; ";")) (if_statement "if (local_448 < 0.0) goto LAB_001ee81d;" (if "if") (parenthesized_expression "(local_448 < 0.0)" (( "(") (binary_expression "local_448 < 0.0" (identifier "local_448") (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_001ee81d;" (goto "goto") (statement_identifier "LAB_001ee81d") (; ";"))) (labeled_statement "LAB_001ee3ad:\n                if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }" (statement_identifier "LAB_001ee3ad") (: ":") (if_statement "if (1.0 < local_448) {\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }" (if "if") (parenthesized_expression "(1.0 < local_448)" (( "(") (binary_expression "1.0 < local_448" (number_literal "1.0") (< "<") (identifier "local_448")) () ")")) (compound_statement "{\n                  fVar3 = *(float *)(unaff_EDI + 0xec39d);\n                  goto LAB_001ee3c3;\n                }" ({ "{") (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xec39d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xec39d)" (identifier "fVar3") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xec39d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec39d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec39d)" (( "(") (binary_expression "unaff_EDI + 0xec39d" (identifier "unaff_EDI") (+ "+") (number_literal "0xec39d")) () ")"))))) (; ";")) (goto_statement "goto LAB_001ee3c3;" (goto "goto") (statement_identifier "LAB_001ee3c3") (; ";")) (} "}")))) (expression_statement "fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar3") (= "=") (binary_expression "local_448 * *(float *)(unaff_EDI + 0xdf975) +\n                        *(float *)(unaff_EDI + 0xb227d)" (binary_expression "local_448 * *(float *)(unaff_EDI + 0xdf975)" (identifier "local_448") (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xdf975)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdf975)" (( "(") (binary_expression "unaff_EDI + 0xdf975" (identifier "unaff_EDI") (+ "+") (number_literal "0xdf975")) () ")"))))) (+ "+") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")")))))) (; ";")) (if_statement "if (local_444 < 0.0) goto LAB_001ee7e9;" (if "if") (parenthesized_expression "(local_444 < 0.0)" (( "(") (binary_expression "local_444 < 0.0" (identifier "local_444") (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_001ee7e9;" (goto "goto") (statement_identifier "LAB_001ee7e9") (; ";"))) (labeled_statement "LAB_001ee3d4:\n                if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }" (statement_identifier "LAB_001ee3d4") (: ":") (if_statement "if (1.0 < local_444) {\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }\n                else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }" (if "if") (parenthesized_expression "(1.0 < local_444)" (( "(") (binary_expression "1.0 < local_444" (number_literal "1.0") (< "<") (identifier "local_444")) () ")")) (compound_statement "{\n                  fVar6 = *(float *)(unaff_EDI + 0xec399);\n                }" ({ "{") (expression_statement "fVar6 = *(float *)(unaff_EDI + 0xec399);" (assignment_expression "fVar6 = *(float *)(unaff_EDI + 0xec399)" (identifier "fVar6") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xec399)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec399)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec399)" (( "(") (binary_expression "unaff_EDI + 0xec399" (identifier "unaff_EDI") (+ "+") (number_literal "0xec399")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }" (else "else") (compound_statement "{\n                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);\n                }" ({ "{") (expression_statement "fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar6") (= "=") (binary_expression "local_444 * *(float *)(unaff_EDI + 0xd9031) +\n                          *(float *)(unaff_EDI + 0xb227d)" (binary_expression "local_444 * *(float *)(unaff_EDI + 0xd9031)" (identifier "local_444") (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xd9031)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd9031)" (( "(") (binary_expression "unaff_EDI + 0xd9031" (identifier "unaff_EDI") (+ "+") (number_literal "0xd9031")) () ")"))))) (+ "+") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")")))))) (; ";")) (} "}"))))) (} "}")))) (expression_statement "uVar10 = (undefined2)((uint)local_38c >> 0x10);" (assignment_expression "uVar10 = (undefined2)((uint)local_38c >> 0x10)" (identifier "uVar10") (= "=") (call_expression "(undefined2)((uint)local_38c >> 0x10)" (parenthesized_expression "(undefined2)" (( "(") (identifier "undefined2") () ")")) (argument_list "((uint)local_38c >> 0x10)" (( "(") (binary_expression "(uint)local_38c >> 0x10" (cast_expression "(uint)local_38c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_38c")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (fVar6 <= 0.0) {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }\n              else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }" (if "if") (parenthesized_expression "(fVar6 <= 0.0)" (( "(") (binary_expression "fVar6 <= 0.0" (identifier "fVar6") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);\n              }" ({ "{") (expression_statement "local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);" (assignment_expression "local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800)" (identifier "local_38c") (= "=") (cast_expression "(float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800)" (( "(") (binary_expression "CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800" (binary_expression "CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff" (call_expression "CONCAT22(uVar10,in_FPUControlWord)" (identifier "CONCAT22") (argument_list "(uVar10,in_FPUControlWord)" (( "(") (identifier "uVar10") (, ",") (identifier "in_FPUControlWord") () ")"))) (& "&") (number_literal "0xfffff3ff")) (| "|") (number_literal "0x800")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }" (else "else") (compound_statement "{\n                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);\n              }" ({ "{") (expression_statement "local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);" (assignment_expression "local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400)" (identifier "local_38c") (= "=") (cast_expression "(float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400)" (( "(") (binary_expression "CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400" (binary_expression "CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff" (call_expression "CONCAT22(uVar10,in_FPUControlWord)" (identifier "CONCAT22") (argument_list "(uVar10,in_FPUControlWord)" (( "(") (identifier "uVar10") (, ",") (identifier "in_FPUControlWord") () ")"))) (& "&") (number_literal "0xfffff3ff")) (| "|") (number_literal "0x400")) () ")")))) (; ";")) (} "}")))) (expression_statement "local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);" (assignment_expression "local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord)" (identifier "local_39c") (= "=") (cast_expression "(float)CONCAT22(local_39c._2_2_,in_FPUControlWord)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT22(local_39c._2_2_,in_FPUControlWord)" (identifier "CONCAT22") (argument_list "(local_39c._2_2_,in_FPUControlWord)" (( "(") (field_expression "local_39c._2_2_" (identifier "local_39c") (. ".") (field_identifier "_2_2_")) (, ",") (identifier "in_FPUControlWord") () ")"))))) (; ";")) (expression_statement "local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" (identifier "local_44c") (= "=") (binary_expression "ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar2)" (identifier "ROUND") (argument_list "(fVar2)" (( "(") (identifier "fVar2") () ")"))) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec3ad)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3ad)" (( "(") (binary_expression "unaff_EDI + 0xec3ad" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3ad")) () ")")))))) (; ";")) (expression_statement "local_1c0 = local_440;" (assignment_expression "local_1c0 = local_440" (identifier "local_1c0") (= "=") (identifier "local_440")) (; ";")) (expression_statement "local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);" (assignment_expression "local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" (identifier "local_448") (= "=") (binary_expression "*(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3)" (pointer_expression "*(float *)(unaff_EDI + 0xec3b1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec3b1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3b1)" (( "(") (binary_expression "unaff_EDI + 0xec3b1" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3b1")) () ")")))) (* "*") (call_expression "ROUND(fVar3)" (identifier "ROUND") (argument_list "(fVar3)" (( "(") (identifier "fVar3") () ")"))))) (; ";")) (expression_statement "local_1bc = local_43c;" (assignment_expression "local_1bc = local_43c" (identifier "local_1bc") (= "=") (identifier "local_43c")) (; ";")) (expression_statement "local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);" (assignment_expression "local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad)" (identifier "local_444") (= "=") (binary_expression "ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad)" (call_expression "ROUND(fVar6)" (identifier "ROUND") (argument_list "(fVar6)" (( "(") (identifier "fVar6") () ")"))) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xec3ad)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec3ad)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3ad)" (( "(") (binary_expression "unaff_EDI + 0xec3ad" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3ad")) () ")")))))) (; ";")) (expression_statement "local_1b8 = local_438;" (assignment_expression "local_1b8 = local_438" (identifier "local_1b8") (= "=") (identifier "local_438")) (; ";")) (expression_statement "local_1b4 = local_44c;" (assignment_expression "local_1b4 = local_44c" (identifier "local_1b4") (= "=") (identifier "local_44c")) (; ";")) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec3b5);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec3b5)" (identifier "fVar2") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xec3b5)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec3b5)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3b5)" (( "(") (binary_expression "unaff_EDI + 0xec3b5" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3b5")) () ")"))))) (; ";")) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xec3b9);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xec3b9)" (identifier "fVar3") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xec3b9)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec3b9)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3b9)" (( "(") (binary_expression "unaff_EDI + 0xec3b9" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3b9")) () ")"))))) (; ";")) (expression_statement "local_1b0 = local_448;" (assignment_expression "local_1b0 = local_448" (identifier "local_1b0") (= "=") (identifier "local_448")) (; ";")) (expression_statement "local_1ac = local_444;" (assignment_expression "local_1ac = local_444" (identifier "local_1ac") (= "=") (identifier "local_444")) (; ";")) (expression_statement "local_1a8 = local_44c * fVar3 + local_440 * fVar2;" (assignment_expression "local_1a8 = local_44c * fVar3 + local_440 * fVar2" (identifier "local_1a8") (= "=") (binary_expression "local_44c * fVar3 + local_440 * fVar2" (binary_expression "local_44c * fVar3" (identifier "local_44c") (* "*") (identifier "fVar3")) (+ "+") (binary_expression "local_440 * fVar2" (identifier "local_440") (* "*") (identifier "fVar2")))) (; ";")) (expression_statement "local_1a4 = local_448 * fVar3 + local_43c * fVar2;" (assignment_expression "local_1a4 = local_448 * fVar3 + local_43c * fVar2" (identifier "local_1a4") (= "=") (binary_expression "local_448 * fVar3 + local_43c * fVar2" (binary_expression "local_448 * fVar3" (identifier "local_448") (* "*") (identifier "fVar3")) (+ "+") (binary_expression "local_43c * fVar2" (identifier "local_43c") (* "*") (identifier "fVar2")))) (; ";")) (expression_statement "local_1a0 = local_444 * fVar3 + local_438 * fVar2;" (assignment_expression "local_1a0 = local_444 * fVar3 + local_438 * fVar2" (identifier "local_1a0") (= "=") (binary_expression "local_444 * fVar3 + local_438 * fVar2" (binary_expression "local_444 * fVar3" (identifier "local_444") (* "*") (identifier "fVar3")) (+ "+") (binary_expression "local_438 * fVar2" (identifier "local_438") (* "*") (identifier "fVar2")))) (; ";")) (expression_statement "local_19c = local_44c * fVar2 + local_440 * fVar3;" (assignment_expression "local_19c = local_44c * fVar2 + local_440 * fVar3" (identifier "local_19c") (= "=") (binary_expression "local_44c * fVar2 + local_440 * fVar3" (binary_expression "local_44c * fVar2" (identifier "local_44c") (* "*") (identifier "fVar2")) (+ "+") (binary_expression "local_440 * fVar3" (identifier "local_440") (* "*") (identifier "fVar3")))) (; ";")) (expression_statement "local_198 = local_448 * fVar2 + local_43c * fVar3;" (assignment_expression "local_198 = local_448 * fVar2 + local_43c * fVar3" (identifier "local_198") (= "=") (binary_expression "local_448 * fVar2 + local_43c * fVar3" (binary_expression "local_448 * fVar2" (identifier "local_448") (* "*") (identifier "fVar2")) (+ "+") (binary_expression "local_43c * fVar3" (identifier "local_43c") (* "*") (identifier "fVar3")))) (; ";")) (expression_statement "local_194 = fVar3 * local_438 + local_444 * fVar2;" (assignment_expression "local_194 = fVar3 * local_438 + local_444 * fVar2" (identifier "local_194") (= "=") (binary_expression "fVar3 * local_438 + local_444 * fVar2" (binary_expression "fVar3 * local_438" (identifier "fVar3") (* "*") (identifier "local_438")) (+ "+") (binary_expression "local_444 * fVar2" (identifier "local_444") (* "*") (identifier "fVar2")))) (; ";")) (if_statement "if (0 < (int)local_4d4) {\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }" (if "if") (parenthesized_expression "(0 < (int)local_4d4)" (( "(") (binary_expression "0 < (int)local_4d4" (number_literal "0") (< "<") (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4"))) () ")")) (compound_statement "{\n                pbVar28 = local_a0;\n                pfVar21 = local_2c0;\n                pbVar18 = pbVar28 + (int)local_4d4;\n                do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);\n              }" ({ "{") (expression_statement "pbVar28 = local_a0;" (assignment_expression "pbVar28 = local_a0" (identifier "pbVar28") (= "=") (identifier "local_a0")) (; ";")) (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" (identifier "pfVar21") (= "=") (identifier "local_2c0")) (; ";")) (expression_statement "pbVar18 = pbVar28 + (int)local_4d4;" (assignment_expression "pbVar18 = pbVar28 + (int)local_4d4" (identifier "pbVar18") (= "=") (binary_expression "pbVar28 + (int)local_4d4" (identifier "pbVar28") (+ "+") (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4")))) (; ";")) (do_statement "do {\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                } while (pbVar28 != pbVar18);" (do "do") (compound_statement "{\n                  iVar24 = 0;\n                  iVar12 = 0;\n                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);\n                  pfVar22 = &local_1c0;\n                  do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);\n                  *pbVar28 = (byte)iVar24;\n                  pbVar28 = pbVar28 + 1;\n                  pfVar21 = pfVar21 + 4;\n                }" ({ "{") (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xec3a1);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xec3a1)" (identifier "fVar2") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xec3a1)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec3a1)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3a1)" (( "(") (binary_expression "unaff_EDI + 0xec3a1" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3a1")) () ")"))))) (; ";")) (expression_statement "pfVar22 = &local_1c0;" (assignment_expression "pfVar22 = &local_1c0" (identifier "pfVar22") (= "=") (pointer_expression "&local_1c0" (& "&") (identifier "local_1c0"))) (; ";")) (do_statement "do {\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  } while (iVar12 != 4);" (do "do") (compound_statement "{\n                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);\n                    if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }\n                    iVar12 = iVar12 + 1;\n                    pfVar22 = pfVar22 + 3;\n                  }" ({ "{") (expression_statement "fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);" (assignment_expression "fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22)" (identifier "fVar3") (= "=") (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +\n                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22)" (binary_expression "(pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +\n                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1])" (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[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") (] "]"))) () ")")))) (+ "+") (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"))) () ")"))))) (; ";")) (if_statement "if (fVar3 < fVar2) {\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }" (if "if") (parenthesized_expression "(fVar3 < fVar2)" (( "(") (binary_expression "fVar3 < fVar2" (identifier "fVar3") (< "<") (identifier "fVar2")) () ")")) (compound_statement "{\n                      iVar24 = iVar12;\n                      fVar2 = fVar3;\n                    }" ({ "{") (expression_statement "iVar24 = iVar12;" (assignment_expression "iVar24 = iVar12" (identifier "iVar24") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "fVar2 = fVar3;" (assignment_expression "fVar2 = fVar3" (identifier "fVar2") (= "=") (identifier "fVar3")) (; ";")) (} "}"))) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar22 = pfVar22 + 3;" (assignment_expression "pfVar22 = pfVar22 + 3" (identifier "pfVar22") (= "=") (binary_expression "pfVar22 + 3" (identifier "pfVar22") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 != 4)" (( "(") (binary_expression "iVar12 != 4" (identifier "iVar12") (!= "!=") (number_literal "4")) () ")")) (; ";")) (expression_statement "*pbVar28 = (byte)iVar24;" (assignment_expression "*pbVar28 = (byte)iVar24" (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28")) (= "=") (cast_expression "(byte)iVar24" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar24"))) (; ";")) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" (identifier "pbVar28") (= "=") (binary_expression "pbVar28 + 1" (identifier "pbVar28") (+ "+") (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 "(pbVar28 != pbVar18)" (( "(") (binary_expression "pbVar28 != pbVar18" (identifier "pbVar28") (!= "!=") (identifier "pbVar18")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              } while (iVar24 != 0x10);" (do "do") (compound_statement "{\n                if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }\n                iVar24 = iVar24 + 1;\n              }" ({ "{") (if_statement "if (local_300[iVar24] == -NAN) {\n                  local_c0[iVar24] = 3;\n                }\n                else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }" (if "if") (parenthesized_expression "(local_300[iVar24] == -NAN)" (( "(") (binary_expression "local_300[iVar24] == -NAN" (subscript_expression "local_300[iVar24]" (identifier "local_300") ([ "[") (identifier "iVar24") (] "]")) (== "==") (unary_expression "-NAN" (- "-") (identifier "NAN"))) () ")")) (compound_statement "{\n                  local_c0[iVar24] = 3;\n                }" ({ "{") (expression_statement "local_c0[iVar24] = 3;" (assignment_expression "local_c0[iVar24] = 3" (subscript_expression "local_c0[iVar24]" (identifier "local_c0") ([ "[") (identifier "iVar24") (] "]")) (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else {\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }" (else "else") (compound_statement "{\n                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];\n                }" ({ "{") (expression_statement "local_c0[iVar24] = local_a0[(int)local_300[iVar24]];" (assignment_expression "local_c0[iVar24] = local_a0[(int)local_300[iVar24]]" (subscript_expression "local_c0[iVar24]" (identifier "local_c0") ([ "[") (identifier "iVar24") (] "]")) (= "=") (subscript_expression "local_a0[(int)local_300[iVar24]]" (identifier "local_a0") ([ "[") (cast_expression "(int)local_300[iVar24]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_300[iVar24]" (identifier "local_300") ([ "[") (identifier "iVar24") (] "]"))) (] "]"))) (; ";")) (} "}")))) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != 0x10)" (( "(") (binary_expression "iVar24 != 0x10" (identifier "iVar24") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (} "}")))) (labeled_statement "LAB_001edb47:\n            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);" (statement_identifier "LAB_001edb47") (: ":") (expression_statement "FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);" (call_expression "FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0)" (identifier "FUN_001e9760") (argument_list "(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0)" (( "(") (identifier "local_440") (, ",") (identifier "local_43c") (, ",") (identifier "local_438") (, ",") (identifier "local_44c") (, ",") (identifier "local_448") (, ",") (identifier "local_444") (, ",") (identifier "local_c0") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }" (else "else") (compound_statement "{\n            local_4b0 = 0xff;\n            local_4d4 = 0.0;\n            local_4ac = 3.57331e-43;\n            local_4b8 = 0.0;\n            local_4a0 = 0;\n            local_4c0 = 0.0;\n            do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);\n            if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }\n            if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }\n            if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }\n            fVar2 = *(float *)(unaff_EDI + 0xbb14d);\n            local_4dc = -NAN;\n            local_4e0 = 0.0;\n            fVar3 = *(float *)(unaff_EDI + 0xb227d);\n            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);\n            if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }\n            local_c0[0] = (byte)uVar15;\n            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);\n            if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }\n            local_c0[1] = (char)uVar19;\n            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);\n            if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }\n            local_c0[2] = (char)uVar29;\n            bVar25 = 0;\n            uVar20 = uVar15;\n            while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }\n            pbVar28 = local_b0;\n            do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);\n            iVar24 = 0;\n            do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);\nLAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);\n          }" ({ "{") (expression_statement "local_4b0 = 0xff;" (assignment_expression "local_4b0 = 0xff" (identifier "local_4b0") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "local_4d4 = 0.0;" (assignment_expression "local_4d4 = 0.0" (identifier "local_4d4") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4ac = 3.57331e-43;" (assignment_expression "local_4ac = 3.57331e-43" (identifier "local_4ac") (= "=") (number_literal "3.57331e-43")) (; ";")) (expression_statement "local_4b8 = 0.0;" (assignment_expression "local_4b8 = 0.0" (identifier "local_4b8") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4a0 = 0;" (assignment_expression "local_4a0 = 0" (identifier "local_4a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" (identifier "local_4c0") (= "=") (number_literal "0.0")) (; ";")) (do_statement "do {\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            } while (local_4c0 != (float)iVar12);" (do "do") (compound_statement "{\n              if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }\n              local_4c0 = (float)((int)local_4c0 + 1);\n            }" ({ "{") (if_statement "if (0 < iVar24) {\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }" (if "if") (parenthesized_expression "(0 < iVar24)" (( "(") (binary_expression "0 < iVar24" (number_literal "0") (< "<") (identifier "iVar24")) () ")")) (compound_statement "{\n                iVar13 = *(int *)(iVar11 + 0x2a8);\n                iVar14 = *(int *)(iVar11 + 0x298) * 8;\n                local_4e0 = (float)((int)local_4c0 << 4);\n                iVar33 = local_4a8;\n                do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);\n                local_4a8 = local_4a8 + iVar14 * iVar24;\n              }" ({ "{") (expression_statement "iVar13 = *(int *)(iVar11 + 0x2a8);" (assignment_expression "iVar13 = *(int *)(iVar11 + 0x2a8)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(iVar11 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar11 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2a8)" (( "(") (binary_expression "iVar11 + 0x2a8" (identifier "iVar11") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar11 + 0x298) * 8;" (assignment_expression "iVar14 = *(int *)(iVar11 + 0x298) * 8" (identifier "iVar14") (= "=") (binary_expression "*(int *)(iVar11 + 0x298) * 8" (pointer_expression "*(int *)(iVar11 + 0x298)" (* "*") (cast_expression "(int *)(iVar11 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x298)" (( "(") (binary_expression "iVar11 + 0x298" (identifier "iVar11") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8"))) (; ";")) (expression_statement "local_4e0 = (float)((int)local_4c0 << 4);" (assignment_expression "local_4e0 = (float)((int)local_4c0 << 4)" (identifier "local_4e0") (= "=") (cast_expression "(float)((int)local_4c0 << 4)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((int)local_4c0 << 4)" (( "(") (binary_expression "(int)local_4c0 << 4" (cast_expression "(int)local_4c0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c0")) (<< "<<") (number_literal "4")) () ")")))) (; ";")) (expression_statement "iVar33 = local_4a8;" (assignment_expression "iVar33 = local_4a8" (identifier "iVar33") (= "=") (identifier "local_4a8")) (; ";")) (do_statement "do {\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);" (do "do") (compound_statement "{\n                  uVar15 = 0xff;\n                  local_4dc._0_1_ = 0xff;\n                  if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;\n                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);\n                  if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);\n                  if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);\n                  if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }\n                  if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }\n                  iVar33 = iVar33 + iVar14;\n                  if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }\n                  local_2c0[(int)local_4d4 * 4] = fVar2;\n                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;\n                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;\n                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;\n                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;\n                  local_4d4 = (float)((int)local_4d4 + 1);\nLAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);\n                }" ({ "{") (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" (identifier "uVar15") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "local_4dc._0_1_ = 0xff;" (assignment_expression "local_4dc._0_1_ = 0xff" (field_expression "local_4dc._0_1_" (identifier "local_4dc") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (iVar26 == 0x35545844) {\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar26 == 0x35545844)" (( "(") (binary_expression "iVar26 == 0x35545844" (identifier "iVar26") (== "==") (number_literal "0x35545844")) () ")")) (compound_statement "{\n                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }\n                  }" ({ "{") (if_statement "if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }\n                    else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(iVar11 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(iVar11 + 0x2a8) + 0x34" (pointer_expression "*(int *)(iVar11 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar11 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2a8)" (( "(") (binary_expression "iVar11 + 0x2a8" (identifier "iVar11") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001ed600:\n                      local_4b8 = 3.57331e-43;\n                    }" ({ "{") (labeled_statement "LAB_001ed600:\n                      local_4b8 = 3.57331e-43;" (statement_identifier "LAB_001ed600") (: ":") (expression_statement "local_4b8 = 3.57331e-43;" (assignment_expression "local_4b8 = 3.57331e-43" (identifier "local_4b8") (= "=") (number_literal "3.57331e-43")) (; ";"))) (} "}")) (else_clause "else {\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }" (else "else") (compound_statement "{\n                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);\n                      if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }\n                    }" ({ "{") (expression_statement "dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8)" (identifier "dVar7") (= "=") (pointer_expression "*(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8" (identifier "iVar33") (+ "+") (binary_expression "*(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(iVar11 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar11 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(iVar11 + 0x2a8) + 0x38" (pointer_expression "*(int *)(iVar11 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar11 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2a8)" (( "(") (binary_expression "iVar11 + 0x2a8" (identifier "iVar11") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (dVar7 <= 0.0) {\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }\n                      else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }" (if "if") (parenthesized_expression "(dVar7 <= 0.0)" (( "(") (binary_expression "dVar7 <= 0.0" (identifier "dVar7") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                        uVar15 = 0;\n                        local_4dc._0_1_ = 0;\n                        local_4b0 = 0;\n                      }" ({ "{") (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4dc._0_1_ = 0;" (assignment_expression "local_4dc._0_1_ = 0" (field_expression "local_4dc._0_1_" (identifier "local_4dc") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4b0 = 0;" (assignment_expression "local_4b0 = 0" (identifier "local_4b0") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }" (else "else") (compound_statement "{\n                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);\n                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;\n                        local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));\n                        uVar15 = (uint)local_4dc._0_1_;\n                        if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }\n                        if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }\n                        if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }\n                      }" ({ "{") (expression_statement "dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);" (assignment_expression "dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149)" (identifier "dVar7") (= "=") (binary_expression "dVar7 / (double)*(float *)(unaff_EDI + 0xbb149)" (identifier "dVar7") (/ "/") (cast_expression "(double)*(float *)(unaff_EDI + 0xbb149)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xbb149)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbb149)" (( "(") (binary_expression "unaff_EDI + 0xbb149" (identifier "unaff_EDI") (+ "+") (number_literal "0xbb149")) () ")"))))))) (; ";")) (if_statement "if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;" (if "if") (parenthesized_expression "((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7)" (( "(") (binary_expression "(double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7" (cast_expression "(double)*(float *)(unaff_EDI + 0xbb14d)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xbb14d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbb14d)" (( "(") (binary_expression "unaff_EDI + 0xbb14d" (identifier "unaff_EDI") (+ "+") (number_literal "0xbb14d")) () ")"))))) (<= "<=") (identifier "dVar7")) () ")")) (goto_statement "goto LAB_001ed600;" (goto "goto") (statement_identifier "LAB_001ed600") (; ";"))) (expression_statement "local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));" (assignment_expression "local_4dc._0_1_ =\n                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" (field_expression "local_4dc._0_1_" (identifier "local_4dc") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" (identifier "ROUND") (argument_list "(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d))" (( "(") (binary_expression "dVar7 + (double)*(float *)(unaff_EDI + 0xb227d)" (identifier "dVar7") (+ "+") (cast_expression "(double)*(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")")))))) () ")")))))) (; ";")) (expression_statement "uVar15 = (uint)local_4dc._0_1_;" (assignment_expression "uVar15 = (uint)local_4dc._0_1_" (identifier "uVar15") (= "=") (cast_expression "(uint)local_4dc._0_1_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_4dc._0_1_" (identifier "local_4dc") (. ".") (field_identifier "_0_1_")))) (; ";")) (if_statement "if (uVar15 < local_4b0) {\n                          local_4b0 = uVar15;\n                        }" (if "if") (parenthesized_expression "(uVar15 < local_4b0)" (( "(") (binary_expression "uVar15 < local_4b0" (identifier "uVar15") (< "<") (identifier "local_4b0")) () ")")) (compound_statement "{\n                          local_4b0 = uVar15;\n                        }" ({ "{") (expression_statement "local_4b0 = uVar15;" (assignment_expression "local_4b0 = uVar15" (identifier "local_4b0") (= "=") (identifier "uVar15")) (; ";")) (} "}"))) (if_statement "if ((uint)local_4b8 < uVar15) {\n                          local_4b8 = (float)uVar15;\n                        }" (if "if") (parenthesized_expression "((uint)local_4b8 < uVar15)" (( "(") (binary_expression "(uint)local_4b8 < uVar15" (cast_expression "(uint)local_4b8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4b8")) (< "<") (identifier "uVar15")) () ")")) (compound_statement "{\n                          local_4b8 = (float)uVar15;\n                        }" ({ "{") (expression_statement "local_4b8 = (float)uVar15;" (assignment_expression "local_4b8 = (float)uVar15" (identifier "local_4b8") (= "=") (cast_expression "(float)uVar15" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar15"))) (; ";")) (} "}"))) (if_statement "if (local_4dc._0_1_ == 0) {\n                          uVar15 = 0;\n                        }\n                        else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }" (if "if") (parenthesized_expression "(local_4dc._0_1_ == 0)" (( "(") (binary_expression "local_4dc._0_1_ == 0" (field_expression "local_4dc._0_1_" (identifier "local_4dc") (. ".") (field_identifier "_0_1_")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                          uVar15 = 0;\n                        }" ({ "{") (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }" (else "else") (compound_statement "{\n                          if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }\n                          if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }\n                        }" ({ "{") (if_statement "if (uVar15 < (uint)local_4ac) {\n                            local_4ac = (float)uVar15;\n                          }" (if "if") (parenthesized_expression "(uVar15 < (uint)local_4ac)" (( "(") (binary_expression "uVar15 < (uint)local_4ac" (identifier "uVar15") (< "<") (cast_expression "(uint)local_4ac" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4ac"))) () ")")) (compound_statement "{\n                            local_4ac = (float)uVar15;\n                          }" ({ "{") (expression_statement "local_4ac = (float)uVar15;" (assignment_expression "local_4ac = (float)uVar15" (identifier "local_4ac") (= "=") (cast_expression "(float)uVar15" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar15"))) (; ";")) (} "}"))) (if_statement "if (local_4dc._0_1_ == 0xff) {\n                            uVar15 = 0xff;\n                          }\n                          else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }" (if "if") (parenthesized_expression "(local_4dc._0_1_ == 0xff)" (( "(") (binary_expression "local_4dc._0_1_ == 0xff" (field_expression "local_4dc._0_1_" (identifier "local_4dc") (. ".") (field_identifier "_0_1_")) (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n                            uVar15 = 0xff;\n                          }" ({ "{") (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" (identifier "uVar15") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }" (else "else") (if_statement "if (local_4a0 < uVar15) {\n                            local_4a0 = uVar15;\n                          }" (if "if") (parenthesized_expression "(local_4a0 < uVar15)" (( "(") (binary_expression "local_4a0 < uVar15" (identifier "local_4a0") (< "<") (identifier "uVar15")) () ")")) (compound_statement "{\n                            local_4a0 = uVar15;\n                          }" ({ "{") (expression_statement "local_4a0 = uVar15;" (assignment_expression "local_4a0 = uVar15" (identifier "local_4a0") (= "=") (identifier "uVar15")) (; ";")) (} "}"))))) (} "}")))) (} "}")))) (} "}")))) (} "}"))) (expression_statement "*(uint *)((int)local_340 + (int)local_4e0) = uVar15;" (assignment_expression "*(uint *)((int)local_340 + (int)local_4e0) = uVar15" (pointer_expression "*(uint *)((int)local_340 + (int)local_4e0)" (* "*") (cast_expression "(uint *)((int)local_340 + (int)local_4e0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_340 + (int)local_4e0)" (( "(") (binary_expression "(int)local_340 + (int)local_4e0" (cast_expression "(int)local_340" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_340")) (+ "+") (cast_expression "(int)local_4e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4e0"))) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);" (assignment_expression "fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8)" (identifier "fVar2") (= "=") (cast_expression "(float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8)" (* "*") (cast_expression "(double *)(iVar33 + *(int *)(iVar13 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar33 + *(int *)(iVar13 + 8) * 8)" (( "(") (binary_expression "iVar33 + *(int *)(iVar13 + 8) * 8" (identifier "iVar33") (+ "+") (binary_expression "*(int *)(iVar13 + 8) * 8" (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")")))))) (; ";")) (if_statement "if (NAN(fVar2)) {\n                    fVar2 = 0.0;\n                  }\n                  else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" (if "if") (parenthesized_expression "(NAN(fVar2))" (( "(") (call_expression "NAN(fVar2)" (identifier "NAN") (argument_list "(fVar2)" (( "(") (identifier "fVar2") () ")"))) () ")")) (compound_statement "{\n                    fVar2 = 0.0;\n                  }" ({ "{") (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" (identifier "fVar2") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" (else "else") (if_statement "if (fVar2 <= 0.0) {\n                    fVar2 = 0.0;\n                  }\n                  else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" (if "if") (parenthesized_expression "(fVar2 <= 0.0)" (( "(") (binary_expression "fVar2 <= 0.0" (identifier "fVar2") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    fVar2 = 0.0;\n                  }" ({ "{") (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" (identifier "fVar2") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" (else "else") (compound_statement "{\n                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" ({ "{") (expression_statement "fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);" (assignment_expression "fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149)" (identifier "fVar2") (= "=") (binary_expression "fVar2 / *(float *)(unaff_EDI + 0xbb149)" (identifier "fVar2") (/ "/") (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xbb149)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbb149)" (( "(") (binary_expression "unaff_EDI + 0xbb149" (identifier "unaff_EDI") (+ "+") (number_literal "0xbb149")) () ")")))))) (; ";")) (if_statement "if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {\n                      fVar2 = 1.0;\n                    }\n                    else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" (if "if") (parenthesized_expression "(*(float *)(unaff_EDI + 0xbb14d) <= fVar2)" (( "(") (binary_expression "*(float *)(unaff_EDI + 0xbb14d) <= fVar2" (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xbb14d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbb14d)" (( "(") (binary_expression "unaff_EDI + 0xbb14d" (identifier "unaff_EDI") (+ "+") (number_literal "0xbb14d")) () ")")))) (<= "<=") (identifier "fVar2")) () ")")) (compound_statement "{\n                      fVar2 = 1.0;\n                    }" ({ "{") (expression_statement "fVar2 = 1.0;" (assignment_expression "fVar2 = 1.0" (identifier "fVar2") (= "=") (number_literal "1.0")) (; ";")) (} "}")) (else_clause "else {\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" (else "else") (compound_statement "{\n                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" ({ "{") (expression_statement "fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (identifier "fVar2") (= "=") (binary_expression "(float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (cast_expression "(float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" (( "(") (binary_expression "(short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff" (cast_expression "(short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d))" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d))" (identifier "ROUND") (argument_list "(fVar2 + *(float *)(unaff_EDI + 0xb227d))" (( "(") (binary_expression "fVar2 + *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar2") (+ "+") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")"))))) () ")")))) (& "&") (number_literal "0xff")) () ")"))) (/ "/") (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xbb14d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbb14d)" (( "(") (binary_expression "unaff_EDI + 0xbb14d" (identifier "unaff_EDI") (+ "+") (number_literal "0xbb14d")) () ")")))))) (; ";")) (} "}")))) (} "}")))))) (expression_statement "fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);" (assignment_expression "fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8)" (identifier "fVar3") (= "=") (cast_expression "(float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8)" (* "*") (cast_expression "(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar33 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (binary_expression "iVar33 + *(int *)(iVar13 + 0x14) * 8" (identifier "iVar33") (+ "+") (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" (* "*") (cast_expression "(int *)(iVar13 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x14)" (( "(") (binary_expression "iVar13 + 0x14" (identifier "iVar13") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")")))))) (; ";")) (if_statement "if (NAN(fVar3)) {\n                    fVar3 = 0.0;\n                  }\n                  else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" (if "if") (parenthesized_expression "(NAN(fVar3))" (( "(") (call_expression "NAN(fVar3)" (identifier "NAN") (argument_list "(fVar3)" (( "(") (identifier "fVar3") () ")"))) () ")")) (compound_statement "{\n                    fVar3 = 0.0;\n                  }" ({ "{") (expression_statement "fVar3 = 0.0;" (assignment_expression "fVar3 = 0.0" (identifier "fVar3") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" (else "else") (if_statement "if (fVar3 <= 0.0) {\n                    fVar3 = 0.0;\n                  }\n                  else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" (if "if") (parenthesized_expression "(fVar3 <= 0.0)" (( "(") (binary_expression "fVar3 <= 0.0" (identifier "fVar3") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    fVar3 = 0.0;\n                  }" ({ "{") (expression_statement "fVar3 = 0.0;" (assignment_expression "fVar3 = 0.0" (identifier "fVar3") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" (else "else") (compound_statement "{\n                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" ({ "{") (expression_statement "fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);" (assignment_expression "fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149)" (identifier "fVar3") (= "=") (binary_expression "fVar3 / *(float *)(unaff_EDI + 0xbb149)" (identifier "fVar3") (/ "/") (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xbb149)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbb149)" (( "(") (binary_expression "unaff_EDI + 0xbb149" (identifier "unaff_EDI") (+ "+") (number_literal "0xbb149")) () ")")))))) (; ";")) (if_statement "if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {\n                      fVar3 = 1.0;\n                    }\n                    else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" (if "if") (parenthesized_expression "(*(float *)(unaff_EDI + 0xbb14d) <= fVar3)" (( "(") (binary_expression "*(float *)(unaff_EDI + 0xbb14d) <= fVar3" (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xbb14d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbb14d)" (( "(") (binary_expression "unaff_EDI + 0xbb14d" (identifier "unaff_EDI") (+ "+") (number_literal "0xbb14d")) () ")")))) (<= "<=") (identifier "fVar3")) () ")")) (compound_statement "{\n                      fVar3 = 1.0;\n                    }" ({ "{") (expression_statement "fVar3 = 1.0;" (assignment_expression "fVar3 = 1.0" (identifier "fVar3") (= "=") (number_literal "1.0")) (; ";")) (} "}")) (else_clause "else {\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" (else "else") (compound_statement "{\n                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" ({ "{") (expression_statement "fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (identifier "fVar3") (= "=") (binary_expression "(float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (cast_expression "(float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" (( "(") (binary_expression "(short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff" (cast_expression "(short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d))" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d))" (identifier "ROUND") (argument_list "(fVar3 + *(float *)(unaff_EDI + 0xb227d))" (( "(") (binary_expression "fVar3 + *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar3") (+ "+") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")"))))) () ")")))) (& "&") (number_literal "0xff")) () ")"))) (/ "/") (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xbb14d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbb14d)" (( "(") (binary_expression "unaff_EDI + 0xbb14d" (identifier "unaff_EDI") (+ "+") (number_literal "0xbb14d")) () ")")))))) (; ";")) (} "}")))) (} "}")))))) (expression_statement "fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);" (assignment_expression "fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8)" (identifier "fVar6") (= "=") (cast_expression "(float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8)" (* "*") (cast_expression "(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar33 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (binary_expression "iVar33 + *(int *)(iVar13 + 0x20) * 8" (identifier "iVar33") (+ "+") (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" (* "*") (cast_expression "(int *)(iVar13 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x20)" (( "(") (binary_expression "iVar13 + 0x20" (identifier "iVar13") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")")))))) (; ";")) (if_statement "if (NAN(fVar6)) {\n                    fVar6 = 0.0;\n                  }\n                  else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" (if "if") (parenthesized_expression "(NAN(fVar6))" (( "(") (call_expression "NAN(fVar6)" (identifier "NAN") (argument_list "(fVar6)" (( "(") (identifier "fVar6") () ")"))) () ")")) (compound_statement "{\n                    fVar6 = 0.0;\n                  }" ({ "{") (expression_statement "fVar6 = 0.0;" (assignment_expression "fVar6 = 0.0" (identifier "fVar6") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" (else "else") (if_statement "if (fVar6 <= 0.0) {\n                    fVar6 = 0.0;\n                  }\n                  else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" (if "if") (parenthesized_expression "(fVar6 <= 0.0)" (( "(") (binary_expression "fVar6 <= 0.0" (identifier "fVar6") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    fVar6 = 0.0;\n                  }" ({ "{") (expression_statement "fVar6 = 0.0;" (assignment_expression "fVar6 = 0.0" (identifier "fVar6") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" (else "else") (compound_statement "{\n                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);\n                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }\n                  }" ({ "{") (expression_statement "fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);" (assignment_expression "fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149)" (identifier "fVar6") (= "=") (binary_expression "fVar6 / *(float *)(unaff_EDI + 0xbb149)" (identifier "fVar6") (/ "/") (pointer_expression "*(float *)(unaff_EDI + 0xbb149)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xbb149)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbb149)" (( "(") (binary_expression "unaff_EDI + 0xbb149" (identifier "unaff_EDI") (+ "+") (number_literal "0xbb149")) () ")")))))) (; ";")) (if_statement "if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {\n                      fVar6 = 1.0;\n                    }\n                    else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" (if "if") (parenthesized_expression "(*(float *)(unaff_EDI + 0xbb14d) <= fVar6)" (( "(") (binary_expression "*(float *)(unaff_EDI + 0xbb14d) <= fVar6" (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xbb14d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbb14d)" (( "(") (binary_expression "unaff_EDI + 0xbb14d" (identifier "unaff_EDI") (+ "+") (number_literal "0xbb14d")) () ")")))) (<= "<=") (identifier "fVar6")) () ")")) (compound_statement "{\n                      fVar6 = 1.0;\n                    }" ({ "{") (expression_statement "fVar6 = 1.0;" (assignment_expression "fVar6 = 1.0" (identifier "fVar6") (= "=") (number_literal "1.0")) (; ";")) (} "}")) (else_clause "else {\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" (else "else") (compound_statement "{\n                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);\n                    }" ({ "{") (expression_statement "fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (identifier "fVar6") (= "=") (binary_expression "(float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)\n                              / *(float *)(unaff_EDI + 0xbb14d)" (cast_expression "(float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)" (( "(") (binary_expression "(short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff" (cast_expression "(short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d))" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d))" (identifier "ROUND") (argument_list "(fVar6 + *(float *)(unaff_EDI + 0xb227d))" (( "(") (binary_expression "fVar6 + *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar6") (+ "+") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")"))))) () ")")))) (& "&") (number_literal "0xff")) () ")"))) (/ "/") (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xbb14d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbb14d)" (( "(") (binary_expression "unaff_EDI + 0xbb14d" (identifier "unaff_EDI") (+ "+") (number_literal "0xbb14d")) () ")")))))) (; ";")) (} "}")))) (} "}")))))) (if_statement "if (param_1 == 0) {\n                    fVar4 = 1.0;\n                  }\n                  else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    fVar4 = 1.0;\n                  }" ({ "{") (expression_statement "fVar4 = 1.0;" (assignment_expression "fVar4 = 1.0" (identifier "fVar4") (= "=") (number_literal "1.0")) (; ";")) (} "}")) (else_clause "else {\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }" (else "else") (compound_statement "{\n                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);\n                  }" ({ "{") (expression_statement "fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);" (assignment_expression "fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5)" (identifier "fVar4") (= "=") (binary_expression "(float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5)" (cast_expression "(float)(uVar15 + 1)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(uVar15 + 1)" (( "(") (binary_expression "uVar15 + 1" (identifier "uVar15") (+ "+") (number_literal "1")) () ")"))) (* "*") (pointer_expression "*(float *)(unaff_EDI + 0xec3a5)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec3a5)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3a5)" (( "(") (binary_expression "unaff_EDI + 0xec3a5" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3a5")) () ")")))))) (; ";")) (} "}")))) (expression_statement "iVar33 = iVar33 + iVar14;" (assignment_expression "iVar33 = iVar33 + iVar14" (identifier "iVar33") (= "=") (binary_expression "iVar33 + iVar14" (identifier "iVar33") (+ "+") (identifier "iVar14"))) (; ";")) (if_statement "if (0 < (int)local_4d4) {\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }" (if "if") (parenthesized_expression "(0 < (int)local_4d4)" (( "(") (binary_expression "0 < (int)local_4d4" (number_literal "0") (< "<") (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4"))) () ")")) (compound_statement "{\n                    pfVar21 = local_2c0;\n                    fVar27 = 0.0;\n                    do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);\n                  }" ({ "{") (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" (identifier "pfVar21") (= "=") (identifier "local_2c0")) (; ";")) (expression_statement "fVar27 = 0.0;" (assignment_expression "fVar27 = 0.0" (identifier "fVar27") (= "=") (number_literal "0.0")) (; ";")) (do_statement "do {\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    } while (fVar27 != local_4d4);" (do "do") (compound_statement "{\n                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }\n                      fVar27 = (float)((int)fVar27 + 1);\n                      pfVar21 = pfVar21 + 4;\n                    }" ({ "{") (if_statement "if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }" (if "if") (parenthesized_expression "((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844))))" (( "(") (binary_expression "(((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))\n                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))" (parenthesized_expression "(((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))" (( "(") (binary_expression "((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6)" (parenthesized_expression "((*pfVar21 == fVar2) && (pfVar21[1] == fVar3))" (( "(") (binary_expression "(*pfVar21 == fVar2) && (pfVar21[1] == fVar3)" (parenthesized_expression "(*pfVar21 == fVar2)" (( "(") (binary_expression "*pfVar21 == fVar2" (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21")) (== "==") (identifier "fVar2")) () ")")) (&& "&&") (parenthesized_expression "(pfVar21[1] == fVar3)" (( "(") (binary_expression "pfVar21[1] == fVar3" (subscript_expression "pfVar21[1]" (identifier "pfVar21") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "fVar3")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pfVar21[2] == fVar6)" (( "(") (binary_expression "pfVar21[2] == fVar6" (subscript_expression "pfVar21[2]" (identifier "pfVar21") ([ "[") (number_literal "2") (] "]")) (== "==") (identifier "fVar6")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))" (( "(") (parenthesized_expression "((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844))" (( "(") (binary_expression "(char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)" (binary_expression "(char)local_4dc._0_1_ < '\0'" (cast_expression "(char)local_4dc._0_1_" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (field_expression "local_4dc._0_1_" (identifier "local_4dc") (. ".") (field_identifier "_0_1_"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(iVar26 == 0x35545844)" (( "(") (binary_expression "iVar26 == 0x35545844" (identifier "iVar26") (== "==") (number_literal "0x35545844")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];\n                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;\n                        goto LAB_001ed2a5;\n                      }" ({ "{") (expression_statement "local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];" (assignment_expression "local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3]" (subscript_expression "local_2c0[(int)fVar27 * 4 + 3]" (identifier "local_2c0") ([ "[") (binary_expression "(int)fVar27 * 4 + 3" (binary_expression "(int)fVar27 * 4" (cast_expression "(int)fVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "fVar27")) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")) (= "=") (binary_expression "fVar4 + local_2c0[(int)fVar27 * 4 + 3]" (identifier "fVar4") (+ "+") (subscript_expression "local_2c0[(int)fVar27 * 4 + 3]" (identifier "local_2c0") ([ "[") (binary_expression "(int)fVar27 * 4 + 3" (binary_expression "(int)fVar27 * 4" (cast_expression "(int)fVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "fVar27")) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")))) (; ";")) (expression_statement "*(float *)((int)local_300 + (int)local_4e0) = fVar27;" (assignment_expression "*(float *)((int)local_300 + (int)local_4e0) = fVar27" (pointer_expression "*(float *)((int)local_300 + (int)local_4e0)" (* "*") (cast_expression "(float *)((int)local_300 + (int)local_4e0)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_300 + (int)local_4e0)" (( "(") (binary_expression "(int)local_300 + (int)local_4e0" (cast_expression "(int)local_300" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_300")) (+ "+") (cast_expression "(int)local_4e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4e0"))) () ")")))) (= "=") (identifier "fVar27")) (; ";")) (goto_statement "goto LAB_001ed2a5;" (goto "goto") (statement_identifier "LAB_001ed2a5") (; ";")) (} "}"))) (expression_statement "fVar27 = (float)((int)fVar27 + 1);" (assignment_expression "fVar27 = (float)((int)fVar27 + 1)" (identifier "fVar27") (= "=") (cast_expression "(float)((int)fVar27 + 1)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((int)fVar27 + 1)" (( "(") (binary_expression "(int)fVar27 + 1" (cast_expression "(int)fVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "fVar27")) (+ "+") (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 "(fVar27 != local_4d4)" (( "(") (binary_expression "fVar27 != local_4d4" (identifier "fVar27") (!= "!=") (identifier "local_4d4")) () ")")) (; ";")) (} "}"))) (expression_statement "local_2c0[(int)local_4d4 * 4] = fVar2;" (assignment_expression "local_2c0[(int)local_4d4 * 4] = fVar2" (subscript_expression "local_2c0[(int)local_4d4 * 4]" (identifier "local_2c0") ([ "[") (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4")) (* "*") (number_literal "4")) (] "]")) (= "=") (identifier "fVar2")) (; ";")) (expression_statement "local_2c0[(int)local_4d4 * 4 + 1] = fVar3;" (assignment_expression "local_2c0[(int)local_4d4 * 4 + 1] = fVar3" (subscript_expression "local_2c0[(int)local_4d4 * 4 + 1]" (identifier "local_2c0") ([ "[") (binary_expression "(int)local_4d4 * 4 + 1" (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4")) (* "*") (number_literal "4")) (+ "+") (number_literal "1")) (] "]")) (= "=") (identifier "fVar3")) (; ";")) (expression_statement "local_2c0[(int)local_4d4 * 4 + 2] = fVar6;" (assignment_expression "local_2c0[(int)local_4d4 * 4 + 2] = fVar6" (subscript_expression "local_2c0[(int)local_4d4 * 4 + 2]" (identifier "local_2c0") ([ "[") (binary_expression "(int)local_4d4 * 4 + 2" (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (= "=") (identifier "fVar6")) (; ";")) (expression_statement "local_2c0[(int)local_4d4 * 4 + 3] = fVar4;" (assignment_expression "local_2c0[(int)local_4d4 * 4 + 3] = fVar4" (subscript_expression "local_2c0[(int)local_4d4 * 4 + 3]" (identifier "local_2c0") ([ "[") (binary_expression "(int)local_4d4 * 4 + 3" (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4")) (* "*") (number_literal "4")) (+ "+") (number_literal "3")) (] "]")) (= "=") (identifier "fVar4")) (; ";")) (expression_statement "*(float *)((int)local_300 + (int)local_4e0) = local_4d4;" (assignment_expression "*(float *)((int)local_300 + (int)local_4e0) = local_4d4" (pointer_expression "*(float *)((int)local_300 + (int)local_4e0)" (* "*") (cast_expression "(float *)((int)local_300 + (int)local_4e0)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_300 + (int)local_4e0)" (( "(") (binary_expression "(int)local_300 + (int)local_4e0" (cast_expression "(int)local_300" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_300")) (+ "+") (cast_expression "(int)local_4e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4e0"))) () ")")))) (= "=") (identifier "local_4d4")) (; ";")) (expression_statement "local_4d4 = (float)((int)local_4d4 + 1);" (assignment_expression "local_4d4 = (float)((int)local_4d4 + 1)" (identifier "local_4d4") (= "=") (cast_expression "(float)((int)local_4d4 + 1)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((int)local_4d4 + 1)" (( "(") (binary_expression "(int)local_4d4 + 1" (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (labeled_statement "LAB_001ed2a5:\n                  local_4e0 = (float)((int)local_4e0 + 4);" (statement_identifier "LAB_001ed2a5") (: ":") (expression_statement "local_4e0 = (float)((int)local_4e0 + 4);" (assignment_expression "local_4e0 = (float)((int)local_4e0 + 4)" (identifier "local_4e0") (= "=") (cast_expression "(float)((int)local_4e0 + 4)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((int)local_4e0 + 4)" (( "(") (binary_expression "(int)local_4e0 + 4" (cast_expression "(int)local_4e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4e0")) (+ "+") (number_literal "4")) () ")")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0)" (( "(") (binary_expression "(float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0" (cast_expression "(float)((iVar24 + (int)local_4c0 * 4) * 4)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((iVar24 + (int)local_4c0 * 4) * 4)" (( "(") (binary_expression "(iVar24 + (int)local_4c0 * 4) * 4" (parenthesized_expression "(iVar24 + (int)local_4c0 * 4)" (( "(") (binary_expression "iVar24 + (int)local_4c0 * 4" (identifier "iVar24") (+ "+") (binary_expression "(int)local_4c0 * 4" (cast_expression "(int)local_4c0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c0")) (* "*") (number_literal "4"))) () ")")) (* "*") (number_literal "4")) () ")"))) (!= "!=") (identifier "local_4e0")) () ")")) (; ";")) (expression_statement "local_4a8 = local_4a8 + iVar14 * iVar24;" (assignment_expression "local_4a8 = local_4a8 + iVar14 * iVar24" (identifier "local_4a8") (= "=") (binary_expression "local_4a8 + iVar14 * iVar24" (identifier "local_4a8") (+ "+") (binary_expression "iVar14 * iVar24" (identifier "iVar14") (* "*") (identifier "iVar24")))) (; ";")) (} "}"))) (expression_statement "local_4c0 = (float)((int)local_4c0 + 1);" (assignment_expression "local_4c0 = (float)((int)local_4c0 + 1)" (identifier "local_4c0") (= "=") (cast_expression "(float)((int)local_4c0 + 1)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((int)local_4c0 + 1)" (( "(") (binary_expression "(int)local_4c0 + 1" (cast_expression "(int)local_4c0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c0")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_4c0 != (float)iVar12)" (( "(") (binary_expression "local_4c0 != (float)iVar12" (identifier "local_4c0") (!= "!=") (cast_expression "(float)iVar12" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "iVar12"))) () ")")) (; ";")) (if_statement "if (0 < (int)local_4d4) {\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }" (if "if") (parenthesized_expression "(0 < (int)local_4d4)" (( "(") (binary_expression "0 < (int)local_4d4" (number_literal "0") (< "<") (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4"))) () ")")) (compound_statement "{\n              pfVar21 = local_2c0 + 3;\n              pfVar22 = pfVar21 + (int)local_4d4 * 4;\n              do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);\n            }" ({ "{") (expression_statement "pfVar21 = local_2c0 + 3;" (assignment_expression "pfVar21 = local_2c0 + 3" (identifier "pfVar21") (= "=") (binary_expression "local_2c0 + 3" (identifier "local_2c0") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pfVar22 = pfVar21 + (int)local_4d4 * 4;" (assignment_expression "pfVar22 = pfVar21 + (int)local_4d4 * 4" (identifier "pfVar22") (= "=") (binary_expression "pfVar21 + (int)local_4d4 * 4" (identifier "pfVar21") (+ "+") (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4")) (* "*") (number_literal "4")))) (; ";")) (do_statement "do {\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              } while (pfVar22 != pfVar21);" (do "do") (compound_statement "{\n                fVar2 = *pfVar21;\n                if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }\n                *pfVar21 = SQRT(fVar2);\n                pfVar21 = pfVar21 + 4;\n              }" ({ "{") (expression_statement "fVar2 = *pfVar21;" (assignment_expression "fVar2 = *pfVar21" (identifier "fVar2") (= "=") (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21"))) (; ";")) (if_statement "if (fVar2 < 0.0) {\n                  sqrtf(fVar2);\n                }" (if "if") (parenthesized_expression "(fVar2 < 0.0)" (( "(") (binary_expression "fVar2 < 0.0" (identifier "fVar2") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                  sqrtf(fVar2);\n                }" ({ "{") (expression_statement "sqrtf(fVar2);" (call_expression "sqrtf(fVar2)" (identifier "sqrtf") (argument_list "(fVar2)" (( "(") (identifier "fVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "*pfVar21 = SQRT(fVar2);" (assignment_expression "*pfVar21 = SQRT(fVar2)" (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21")) (= "=") (call_expression "SQRT(fVar2)" (identifier "SQRT") (argument_list "(fVar2)" (( "(") (identifier "fVar2") () ")")))) (; ";")) (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 "(pfVar22 != pfVar21)" (( "(") (binary_expression "pfVar22 != pfVar21" (identifier "pfVar22") (!= "!=") (identifier "pfVar21")) () ")")) (; ";")) (} "}"))) (if_statement "if (iVar26 == 0x35545844) {\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }" (if "if") (parenthesized_expression "(iVar26 == 0x35545844)" (( "(") (binary_expression "iVar26 == 0x35545844" (identifier "iVar26") (== "==") (number_literal "0x35545844")) () ")")) (compound_statement "{\n              if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;\n              local_4a0 = 0xff;\n              if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }\n              if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }\nLAB_001ee710:\n              pbVar28 = local_b0;\n              uVar15 = FUN_001e9410(local_340,pbVar28);\n              if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }\n              uVar19 = FUN_001e9410(local_340,local_a0);\n              if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }\nLAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);\n              WriteBlobByte(iVar11,local_4b0);\n              do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);\n            }" ({ "{") (if_statement "if (local_4a0 < (uint)local_4ac) {\n                local_4ac = (float)local_4a0;\n              }\n              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;" (if "if") (parenthesized_expression "(local_4a0 < (uint)local_4ac)" (( "(") (binary_expression "local_4a0 < (uint)local_4ac" (identifier "local_4a0") (< "<") (cast_expression "(uint)local_4ac" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4ac"))) () ")")) (compound_statement "{\n                local_4ac = (float)local_4a0;\n              }" ({ "{") (expression_statement "local_4ac = (float)local_4a0;" (assignment_expression "local_4ac = (float)local_4a0" (identifier "local_4ac") (= "=") (cast_expression "(float)local_4a0" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_4a0"))) (; ";")) (} "}")) (else_clause "else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;" (else "else") (if_statement "if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;" (if "if") (parenthesized_expression "(4 < local_4a0 - (int)local_4ac)" (( "(") (binary_expression "4 < local_4a0 - (int)local_4ac" (number_literal "4") (< "<") (binary_expression "local_4a0 - (int)local_4ac" (identifier "local_4a0") (- "-") (cast_expression "(int)local_4ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4ac")))) () ")")) (goto_statement "goto LAB_001ee710;" (goto "goto") (statement_identifier "LAB_001ee710") (; ";"))))) (expression_statement "local_4a0 = 0xff;" (assignment_expression "local_4a0 = 0xff" (identifier "local_4a0") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if ((int)local_4ac + 5U < 0x100) {\n                local_4a0 = (int)local_4ac + 5U;\n              }" (if "if") (parenthesized_expression "((int)local_4ac + 5U < 0x100)" (( "(") (binary_expression "(int)local_4ac + 5U < 0x100" (binary_expression "(int)local_4ac + 5U" (cast_expression "(int)local_4ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4ac")) (+ "+") (number_literal "5U")) (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n                local_4a0 = (int)local_4ac + 5U;\n              }" ({ "{") (expression_statement "local_4a0 = (int)local_4ac + 5U;" (assignment_expression "local_4a0 = (int)local_4ac + 5U" (identifier "local_4a0") (= "=") (binary_expression "(int)local_4ac + 5U" (cast_expression "(int)local_4ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4ac")) (+ "+") (number_literal "5U"))) (; ";")) (} "}"))) (if_statement "if (local_4a0 - (int)local_4ac < 5) {\n                local_4ac = (float)(local_4a0 - 5);\n              }" (if "if") (parenthesized_expression "(local_4a0 - (int)local_4ac < 5)" (( "(") (binary_expression "local_4a0 - (int)local_4ac < 5" (binary_expression "local_4a0 - (int)local_4ac" (identifier "local_4a0") (- "-") (cast_expression "(int)local_4ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4ac"))) (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                local_4ac = (float)(local_4a0 - 5);\n              }" ({ "{") (expression_statement "local_4ac = (float)(local_4a0 - 5);" (assignment_expression "local_4ac = (float)(local_4a0 - 5)" (identifier "local_4ac") (= "=") (cast_expression "(float)(local_4a0 - 5)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(local_4a0 - 5)" (( "(") (binary_expression "local_4a0 - 5" (identifier "local_4a0") (- "-") (number_literal "5")) () ")")))) (; ";")) (} "}"))) (labeled_statement "LAB_001ee710:\n              pbVar28 = local_b0;" (statement_identifier "LAB_001ee710") (: ":") (expression_statement "pbVar28 = local_b0;" (assignment_expression "pbVar28 = local_b0" (identifier "pbVar28") (= "=") (identifier "local_b0")) (; ";"))) (expression_statement "uVar15 = FUN_001e9410(local_340,pbVar28);" (assignment_expression "uVar15 = FUN_001e9410(local_340,pbVar28)" (identifier "uVar15") (= "=") (call_expression "FUN_001e9410(local_340,pbVar28)" (identifier "FUN_001e9410") (argument_list "(local_340,pbVar28)" (( "(") (identifier "local_340") (, ",") (identifier "pbVar28") () ")")))) (; ";")) (if_statement "if ((uint)local_4b8 < local_4b0) {\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }\n              else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" (if "if") (parenthesized_expression "((uint)local_4b8 < local_4b0)" (( "(") (binary_expression "(uint)local_4b8 < local_4b0" (cast_expression "(uint)local_4b8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4b8")) (< "<") (identifier "local_4b0")) () ")")) (compound_statement "{\nLAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;\n                if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }\n                if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }\n              }" ({ "{") (labeled_statement "LAB_001eea60:\n                uVar19 = (int)local_4b8 + 7;" (statement_identifier "LAB_001eea60") (: ":") (expression_statement "uVar19 = (int)local_4b8 + 7;" (assignment_expression "uVar19 = (int)local_4b8 + 7" (identifier "uVar19") (= "=") (binary_expression "(int)local_4b8 + 7" (cast_expression "(int)local_4b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4b8")) (+ "+") (number_literal "7"))) (; ";"))) (if_statement "if (0xff < uVar19) {\n                  uVar19 = 0xff;\n                }" (if "if") (parenthesized_expression "(0xff < uVar19)" (( "(") (binary_expression "0xff < uVar19" (number_literal "0xff") (< "<") (identifier "uVar19")) () ")")) (compound_statement "{\n                  uVar19 = 0xff;\n                }" ({ "{") (expression_statement "uVar19 = 0xff;" (assignment_expression "uVar19 = 0xff" (identifier "uVar19") (= "=") (number_literal "0xff")) (; ";")) (} "}"))) (if_statement "if (uVar19 - (int)local_4b8 < 7) {\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }\n                else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }" (if "if") (parenthesized_expression "(uVar19 - (int)local_4b8 < 7)" (( "(") (binary_expression "uVar19 - (int)local_4b8 < 7" (binary_expression "uVar19 - (int)local_4b8" (identifier "uVar19") (- "-") (cast_expression "(int)local_4b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4b8"))) (< "<") (number_literal "7")) () ")")) (compound_statement "{\n                  local_4b0 = uVar19 - 7;\n                  local_4b8 = (float)uVar19;\n                }" ({ "{") (expression_statement "local_4b0 = uVar19 - 7;" (assignment_expression "local_4b0 = uVar19 - 7" (identifier "local_4b0") (= "=") (binary_expression "uVar19 - 7" (identifier "uVar19") (- "-") (number_literal "7"))) (; ";")) (expression_statement "local_4b8 = (float)uVar19;" (assignment_expression "local_4b8 = (float)uVar19" (identifier "local_4b8") (= "=") (cast_expression "(float)uVar19" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar19"))) (; ";")) (} "}")) (else_clause "else {\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }" (else "else") (compound_statement "{\n                  local_4b0 = (uint)local_4b8;\n                  local_4b8 = (float)uVar19;\n                }" ({ "{") (expression_statement "local_4b0 = (uint)local_4b8;" (assignment_expression "local_4b0 = (uint)local_4b8" (identifier "local_4b0") (= "=") (cast_expression "(uint)local_4b8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4b8"))) (; ";")) (expression_statement "local_4b8 = (float)uVar19;" (assignment_expression "local_4b8 = (float)uVar19" (identifier "local_4b8") (= "=") (cast_expression "(float)uVar19" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar19"))) (; ";")) (} "}")))) (} "}")) (else_clause "else if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" (else "else") (if_statement "if ((int)local_4b8 - local_4b0 < 7) {\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" (if "if") (parenthesized_expression "((int)local_4b8 - local_4b0 < 7)" (( "(") (binary_expression "(int)local_4b8 - local_4b0 < 7" (binary_expression "(int)local_4b8 - local_4b0" (cast_expression "(int)local_4b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4b8")) (- "-") (identifier "local_4b0")) (< "<") (number_literal "7")) () ")")) (compound_statement "{\n                local_4b8 = (float)local_4b0;\n                goto LAB_001eea60;\n              }" ({ "{") (expression_statement "local_4b8 = (float)local_4b0;" (assignment_expression "local_4b8 = (float)local_4b0" (identifier "local_4b8") (= "=") (cast_expression "(float)local_4b0" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_4b0"))) (; ";")) (goto_statement "goto LAB_001eea60;" (goto "goto") (statement_identifier "LAB_001eea60") (; ";")) (} "}"))))) (expression_statement "uVar19 = FUN_001e9410(local_340,local_a0);" (assignment_expression "uVar19 = FUN_001e9410(local_340,local_a0)" (identifier "uVar19") (= "=") (call_expression "FUN_001e9410(local_340,local_a0)" (identifier "FUN_001e9410") (argument_list "(local_340,local_a0)" (( "(") (identifier "local_340") (, ",") (identifier "local_a0") () ")")))) (; ";")) (if_statement "if (uVar19 < uVar15) {\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }\n              else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }" (if "if") (parenthesized_expression "(uVar19 < uVar15)" (( "(") (binary_expression "uVar19 < uVar15" (identifier "uVar19") (< "<") (identifier "uVar15")) () ")")) (compound_statement "{\n                iVar24 = 0;\n                do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);\n              }" ({ "{") (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                } while (iVar12 != 0x10);" (do "do") (compound_statement "{\n                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }\n                  bVar23 = 9 - bVar25;\n                  if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }\n                  iVar12 = iVar24 + 1;\n                  pbVar28[iVar24] = bVar23;\n                  iVar24 = iVar12;\n                }" ({ "{") (while_statement "while (bVar25 = local_a0[iVar24], bVar25 == 0) {\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }" (while "while") (parenthesized_expression "(bVar25 = local_a0[iVar24], bVar25 == 0)" (( "(") (comma_expression "bVar25 = local_a0[iVar24], bVar25 == 0" (assignment_expression "bVar25 = local_a0[iVar24]" (identifier "bVar25") (= "=") (subscript_expression "local_a0[iVar24]" (identifier "local_a0") ([ "[") (identifier "iVar24") (] "]"))) (, ",") (binary_expression "bVar25 == 0" (identifier "bVar25") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n                    pbVar28[iVar24] = 1;\n                    iVar24 = iVar24 + 1;\n                    if (iVar24 == 0x10) goto LAB_001ee8cf;\n                  }" ({ "{") (expression_statement "pbVar28[iVar24] = 1;" (assignment_expression "pbVar28[iVar24] = 1" (subscript_expression "pbVar28[iVar24]" (identifier "pbVar28") ([ "[") (identifier "iVar24") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar24 == 0x10) goto LAB_001ee8cf;" (if "if") (parenthesized_expression "(iVar24 == 0x10)" (( "(") (binary_expression "iVar24 == 0x10" (identifier "iVar24") (== "==") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_001ee8cf;" (goto "goto") (statement_identifier "LAB_001ee8cf") (; ";"))) (} "}"))) (expression_statement "bVar23 = 9 - bVar25;" (assignment_expression "bVar23 = 9 - bVar25" (identifier "bVar23") (= "=") (binary_expression "9 - bVar25" (number_literal "9") (- "-") (identifier "bVar25"))) (; ";")) (if_statement "if (bVar25 == 1) {\n                    bVar23 = 0;\n                  }" (if "if") (parenthesized_expression "(bVar25 == 1)" (( "(") (binary_expression "bVar25 == 1" (identifier "bVar25") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                    bVar23 = 0;\n                  }" ({ "{") (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" (identifier "bVar23") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar12 = iVar24 + 1;" (assignment_expression "iVar12 = iVar24 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar28[iVar24] = bVar23;" (assignment_expression "pbVar28[iVar24] = bVar23" (subscript_expression "pbVar28[iVar24]" (identifier "pbVar28") ([ "[") (identifier "iVar24") (] "]")) (= "=") (identifier "bVar23")) (; ";")) (expression_statement "iVar24 = iVar12;" (assignment_expression "iVar24 = iVar12" (identifier "iVar24") (= "=") (identifier "iVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 != 0x10)" (( "(") (binary_expression "iVar12 != 0x10" (identifier "iVar12") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (} "}")) (else_clause "else {\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }" (else "else") (compound_statement "{\n                local_4b0 = local_4a0;\n                local_4b8 = local_4ac;\n              }" ({ "{") (expression_statement "local_4b0 = local_4a0;" (assignment_expression "local_4b0 = local_4a0" (identifier "local_4b0") (= "=") (identifier "local_4a0")) (; ";")) (expression_statement "local_4b8 = local_4ac;" (assignment_expression "local_4b8 = local_4ac" (identifier "local_4b8") (= "=") (identifier "local_4ac")) (; ";")) (} "}")))) (labeled_statement "LAB_001ee8cf:\n              WriteBlobByte(iVar11,local_4b8);" (statement_identifier "LAB_001ee8cf") (: ":") (expression_statement "WriteBlobByte(iVar11,local_4b8);" (call_expression "WriteBlobByte(iVar11,local_4b8)" (identifier "WriteBlobByte") (argument_list "(iVar11,local_4b8)" (( "(") (identifier "iVar11") (, ",") (identifier "local_4b8") () ")"))) (; ";"))) (expression_statement "WriteBlobByte(iVar11,local_4b0);" (call_expression "WriteBlobByte(iVar11,local_4b0)" (identifier "WriteBlobByte") (argument_list "(iVar11,local_4b0)" (( "(") (identifier "iVar11") (, ",") (identifier "local_4b0") () ")"))) (; ";")) (do_statement "do {\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              } while (local_a0 != pbVar28);" (do "do") (compound_statement "{\n                iVar24 = 0;\n                uVar15 = 0;\n                do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);\n                pbVar28 = pbVar28 + 8;\n                WriteBlobByte(iVar11,uVar15 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);\n                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);\n              }" ({ "{") (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                } while (iVar24 != 8);" (do "do") (compound_statement "{\n                  pbVar18 = pbVar28 + iVar24;\n                  cVar9 = (char)iVar24;\n                  iVar24 = iVar24 + 1;\n                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);\n                }" ({ "{") (expression_statement "pbVar18 = pbVar28 + iVar24;" (assignment_expression "pbVar18 = pbVar28 + iVar24" (identifier "pbVar18") (= "=") (binary_expression "pbVar28 + iVar24" (identifier "pbVar28") (+ "+") (identifier "iVar24"))) (; ";")) (expression_statement "cVar9 = (char)iVar24;" (assignment_expression "cVar9 = (char)iVar24" (identifier "cVar9") (= "=") (cast_expression "(char)iVar24" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar24"))) (; ";")) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);" (assignment_expression "uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU)" (identifier "uVar15") (= "=") (binary_expression "uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU)" (identifier "uVar15") (| "|") (binary_expression "(uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU)" (binary_expression "(uint)*pbVar18" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar18")) (<< "<<") (parenthesized_expression "(cVar9 * '\x03' & 0x1fU)" (( "(") (binary_expression "cVar9 * '\x03' & 0x1fU" (binary_expression "cVar9 * '\x03'" (identifier "cVar9") (* "*") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) (& "&") (number_literal "0x1fU")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != 8)" (( "(") (binary_expression "iVar24 != 8" (identifier "iVar24") (!= "!=") (number_literal "8")) () ")")) (; ";")) (expression_statement "pbVar28 = pbVar28 + 8;" (assignment_expression "pbVar28 = pbVar28 + 8" (identifier "pbVar28") (= "=") (binary_expression "pbVar28 + 8" (identifier "pbVar28") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "WriteBlobByte(iVar11,uVar15 & 0xff);" (call_expression "WriteBlobByte(iVar11,uVar15 & 0xff)" (identifier "WriteBlobByte") (argument_list "(iVar11,uVar15 & 0xff)" (( "(") (identifier "iVar11") (, ",") (binary_expression "uVar15 & 0xff" (identifier "uVar15") (& "&") (number_literal "0xff")) () ")"))) (; ";")) (expression_statement "WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);" (call_expression "WriteBlobByte(iVar11,uVar15 >> 8 & 0xff)" (identifier "WriteBlobByte") (argument_list "(iVar11,uVar15 >> 8 & 0xff)" (( "(") (identifier "iVar11") (, ",") (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" (identifier "uVar15") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) () ")"))) (; ";")) (expression_statement "WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);" (call_expression "WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff)" (identifier "WriteBlobByte") (argument_list "(iVar11,uVar15 >> 0x10 & 0xff)" (( "(") (identifier "iVar11") (, ",") (binary_expression "uVar15 >> 0x10 & 0xff" (binary_expression "uVar15 >> 0x10" (identifier "uVar15") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_a0 != pbVar28)" (( "(") (binary_expression "local_a0 != pbVar28" (identifier "local_a0") (!= "!=") (identifier "pbVar28")) () ")")) (; ";")) (} "}"))) (if_statement "if (local_4d4 != 1.4013e-45) {\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }" (if "if") (parenthesized_expression "(local_4d4 != 1.4013e-45)" (( "(") (binary_expression "local_4d4 != 1.4013e-45" (identifier "local_4d4") (!= "!=") (number_literal "1.4013e-45")) () ")")) (compound_statement "{\n              fVar6 = 0.0;\n              if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }\n              goto LAB_001ed457;\n            }" ({ "{") (expression_statement "fVar6 = 0.0;" (assignment_expression "fVar6 = 0.0" (identifier "fVar6") (= "=") (number_literal "0.0")) (; ";")) (if_statement "if (local_4d4 == 0.0) {\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }\n              else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }" (if "if") (parenthesized_expression "(local_4d4 == 0.0)" (( "(") (binary_expression "local_4d4 == 0.0" (identifier "local_4d4") (== "==") (number_literal "0.0")) () ")")) (compound_statement "{\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                local_4c0 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                fVar2 = fVar6;\n                fVar3 = local_4c0;\n              }" ({ "{") (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" (identifier "local_4d0") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" (identifier "local_4e0") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" (identifier "local_4c0") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" (identifier "local_4dc") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" (identifier "local_4cc") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar2 = fVar6;" (assignment_expression "fVar2 = fVar6" (identifier "fVar2") (= "=") (identifier "fVar6")) (; ";")) (expression_statement "fVar3 = local_4c0;" (assignment_expression "fVar3 = local_4c0" (identifier "fVar3") (= "=") (identifier "local_4c0")) (; ";")) (} "}")) (else_clause "else {\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }" (else "else") (compound_statement "{\n                local_4c0 = 0.0;\n                local_4b8 = 0.0;\n                fVar2 = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }\n                local_4d0 = 0.0;\n                local_4e0 = 0.0;\n                fVar3 = 0.0;\n                fVar2 = 0.0;\n                local_4dc = 0.0;\n                local_4cc = 0.0;\n                pfVar21 = local_2c0;\n                do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);\n              }" ({ "{") (expression_statement "local_4c0 = 0.0;" (assignment_expression "local_4c0 = 0.0" (identifier "local_4c0") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4b8 = 0.0;" (assignment_expression "local_4b8 = 0.0" (identifier "local_4b8") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" (identifier "fVar2") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" (identifier "pfVar21") (= "=") (identifier "local_2c0")) (; ";")) (do_statement "do {\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);" (do "do") (compound_statement "{\n                  fVar3 = pfVar21[3];\n                  pfVar22 = pfVar21 + 4;\n                  fVar2 = fVar2 + fVar3;\n                  local_4b8 = *pfVar21 * fVar3 + local_4b8;\n                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;\n                  fVar6 = fVar3 * pfVar21[2] + fVar6;\n                  pfVar21 = pfVar22;\n                }" ({ "{") (expression_statement "fVar3 = pfVar21[3];" (assignment_expression "fVar3 = pfVar21[3]" (identifier "fVar3") (= "=") (subscript_expression "pfVar21[3]" (identifier "pfVar21") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pfVar22 = pfVar21 + 4;" (assignment_expression "pfVar22 = pfVar21 + 4" (identifier "pfVar22") (= "=") (binary_expression "pfVar21 + 4" (identifier "pfVar21") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "fVar2 = fVar2 + fVar3;" (assignment_expression "fVar2 = fVar2 + fVar3" (identifier "fVar2") (= "=") (binary_expression "fVar2 + fVar3" (identifier "fVar2") (+ "+") (identifier "fVar3"))) (; ";")) (expression_statement "local_4b8 = *pfVar21 * fVar3 + local_4b8;" (assignment_expression "local_4b8 = *pfVar21 * fVar3 + local_4b8" (identifier "local_4b8") (= "=") (binary_expression "*pfVar21 * fVar3 + local_4b8" (binary_expression "*pfVar21 * fVar3" (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21")) (* "*") (identifier "fVar3")) (+ "+") (identifier "local_4b8"))) (; ";")) (expression_statement "local_4c0 = pfVar21[1] * fVar3 + local_4c0;" (assignment_expression "local_4c0 = pfVar21[1] * fVar3 + local_4c0" (identifier "local_4c0") (= "=") (binary_expression "pfVar21[1] * fVar3 + local_4c0" (binary_expression "pfVar21[1] * fVar3" (subscript_expression "pfVar21[1]" (identifier "pfVar21") ([ "[") (number_literal "1") (] "]")) (* "*") (identifier "fVar3")) (+ "+") (identifier "local_4c0"))) (; ";")) (expression_statement "fVar6 = fVar3 * pfVar21[2] + fVar6;" (assignment_expression "fVar6 = fVar3 * pfVar21[2] + fVar6" (identifier "fVar6") (= "=") (binary_expression "fVar3 * pfVar21[2] + fVar6" (binary_expression "fVar3 * pfVar21[2]" (identifier "fVar3") (* "*") (subscript_expression "pfVar21[2]" (identifier "pfVar21") ([ "[") (number_literal "2") (] "]"))) (+ "+") (identifier "fVar6"))) (; ";")) (expression_statement "pfVar21 = pfVar22;" (assignment_expression "pfVar21 = pfVar22" (identifier "pfVar21") (= "=") (identifier "pfVar22")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_2c0 + (int)local_4d4 * 4 != pfVar22)" (( "(") (binary_expression "local_2c0 + (int)local_4d4 * 4 != pfVar22" (binary_expression "local_2c0 + (int)local_4d4 * 4" (identifier "local_2c0") (+ "+") (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4")) (* "*") (number_literal "4"))) (!= "!=") (identifier "pfVar22")) () ")")) (; ";")) (if_statement "if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }" (if "if") (parenthesized_expression "(*(float *)(unaff_EDI + 0xec3a9) < fVar2)" (( "(") (binary_expression "*(float *)(unaff_EDI + 0xec3a9) < fVar2" (pointer_expression "*(float *)(unaff_EDI + 0xec3a9)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xec3a9)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xec3a9)" (( "(") (binary_expression "unaff_EDI + 0xec3a9" (identifier "unaff_EDI") (+ "+") (number_literal "0xec3a9")) () ")")))) (< "<") (identifier "fVar2")) () ")")) (compound_statement "{\n                  local_4b8 = local_4b8 / fVar2;\n                  local_4c0 = local_4c0 / fVar2;\n                  fVar6 = fVar6 / fVar2;\n                }" ({ "{") (expression_statement "local_4b8 = local_4b8 / fVar2;" (assignment_expression "local_4b8 = local_4b8 / fVar2" (identifier "local_4b8") (= "=") (binary_expression "local_4b8 / fVar2" (identifier "local_4b8") (/ "/") (identifier "fVar2"))) (; ";")) (expression_statement "local_4c0 = local_4c0 / fVar2;" (assignment_expression "local_4c0 = local_4c0 / fVar2" (identifier "local_4c0") (= "=") (binary_expression "local_4c0 / fVar2" (identifier "local_4c0") (/ "/") (identifier "fVar2"))) (; ";")) (expression_statement "fVar6 = fVar6 / fVar2;" (assignment_expression "fVar6 = fVar6 / fVar2" (identifier "fVar6") (= "=") (binary_expression "fVar6 / fVar2" (identifier "fVar6") (/ "/") (identifier "fVar2"))) (; ";")) (} "}"))) (expression_statement "local_4d0 = 0.0;" (assignment_expression "local_4d0 = 0.0" (identifier "local_4d0") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" (identifier "local_4e0") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar3 = 0.0;" (assignment_expression "fVar3 = 0.0" (identifier "fVar3") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" (identifier "fVar2") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4dc = 0.0;" (assignment_expression "local_4dc = 0.0" (identifier "local_4dc") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_4cc = 0.0;" (assignment_expression "local_4cc = 0.0" (identifier "local_4cc") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "pfVar21 = local_2c0;" (assignment_expression "pfVar21 = local_2c0" (identifier "pfVar21") (= "=") (identifier "local_2c0")) (; ";")) (do_statement "do {\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);" (do "do") (compound_statement "{\n                  pfVar22 = pfVar21 + 4;\n                  fVar5 = *pfVar21 - local_4b8;\n                  fVar8 = pfVar21[1] - local_4c0;\n                  fVar4 = pfVar21[3];\n                  fVar27 = (pfVar21[2] - fVar6) * fVar4;\n                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;\n                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;\n                  local_4dc = fVar5 * fVar27 + local_4dc;\n                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;\n                  local_4e0 = fVar8 * fVar27 + local_4e0;\n                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;\n                  pfVar21 = pfVar22;\n                }" ({ "{") (expression_statement "pfVar22 = pfVar21 + 4;" (assignment_expression "pfVar22 = pfVar21 + 4" (identifier "pfVar22") (= "=") (binary_expression "pfVar21 + 4" (identifier "pfVar21") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "fVar5 = *pfVar21 - local_4b8;" (assignment_expression "fVar5 = *pfVar21 - local_4b8" (identifier "fVar5") (= "=") (binary_expression "*pfVar21 - local_4b8" (pointer_expression "*pfVar21" (* "*") (identifier "pfVar21")) (- "-") (identifier "local_4b8"))) (; ";")) (expression_statement "fVar8 = pfVar21[1] - local_4c0;" (assignment_expression "fVar8 = pfVar21[1] - local_4c0" (identifier "fVar8") (= "=") (binary_expression "pfVar21[1] - local_4c0" (subscript_expression "pfVar21[1]" (identifier "pfVar21") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "local_4c0"))) (; ";")) (expression_statement "fVar4 = pfVar21[3];" (assignment_expression "fVar4 = pfVar21[3]" (identifier "fVar4") (= "=") (subscript_expression "pfVar21[3]" (identifier "pfVar21") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "fVar27 = (pfVar21[2] - fVar6) * fVar4;" (assignment_expression "fVar27 = (pfVar21[2] - fVar6) * fVar4" (identifier "fVar27") (= "=") (binary_expression "(pfVar21[2] - fVar6) * fVar4" (parenthesized_expression "(pfVar21[2] - fVar6)" (( "(") (binary_expression "pfVar21[2] - fVar6" (subscript_expression "pfVar21[2]" (identifier "pfVar21") ([ "[") (number_literal "2") (] "]")) (- "-") (identifier "fVar6")) () ")")) (* "*") (identifier "fVar4"))) (; ";")) (expression_statement "local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;" (assignment_expression "local_4cc = fVar4 * fVar5 * fVar5 + local_4cc" (identifier "local_4cc") (= "=") (binary_expression "fVar4 * fVar5 * fVar5 + local_4cc" (binary_expression "fVar4 * fVar5 * fVar5" (binary_expression "fVar4 * fVar5" (identifier "fVar4") (* "*") (identifier "fVar5")) (* "*") (identifier "fVar5")) (+ "+") (identifier "local_4cc"))) (; ";")) (expression_statement "fVar2 = fVar5 * fVar8 * fVar4 + fVar2;" (assignment_expression "fVar2 = fVar5 * fVar8 * fVar4 + fVar2" (identifier "fVar2") (= "=") (binary_expression "fVar5 * fVar8 * fVar4 + fVar2" (binary_expression "fVar5 * fVar8 * fVar4" (binary_expression "fVar5 * fVar8" (identifier "fVar5") (* "*") (identifier "fVar8")) (* "*") (identifier "fVar4")) (+ "+") (identifier "fVar2"))) (; ";")) (expression_statement "local_4dc = fVar5 * fVar27 + local_4dc;" (assignment_expression "local_4dc = fVar5 * fVar27 + local_4dc" (identifier "local_4dc") (= "=") (binary_expression "fVar5 * fVar27 + local_4dc" (binary_expression "fVar5 * fVar27" (identifier "fVar5") (* "*") (identifier "fVar27")) (+ "+") (identifier "local_4dc"))) (; ";")) (expression_statement "fVar3 = fVar8 * fVar4 * fVar8 + fVar3;" (assignment_expression "fVar3 = fVar8 * fVar4 * fVar8 + fVar3" (identifier "fVar3") (= "=") (binary_expression "fVar8 * fVar4 * fVar8 + fVar3" (binary_expression "fVar8 * fVar4 * fVar8" (binary_expression "fVar8 * fVar4" (identifier "fVar8") (* "*") (identifier "fVar4")) (* "*") (identifier "fVar8")) (+ "+") (identifier "fVar3"))) (; ";")) (expression_statement "local_4e0 = fVar8 * fVar27 + local_4e0;" (assignment_expression "local_4e0 = fVar8 * fVar27 + local_4e0" (identifier "local_4e0") (= "=") (binary_expression "fVar8 * fVar27 + local_4e0" (binary_expression "fVar8 * fVar27" (identifier "fVar8") (* "*") (identifier "fVar27")) (+ "+") (identifier "local_4e0"))) (; ";")) (expression_statement "local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;" (assignment_expression "local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0" (identifier "local_4d0") (= "=") (binary_expression "(pfVar21[2] - fVar6) * fVar27 + local_4d0" (binary_expression "(pfVar21[2] - fVar6) * fVar27" (parenthesized_expression "(pfVar21[2] - fVar6)" (( "(") (binary_expression "pfVar21[2] - fVar6" (subscript_expression "pfVar21[2]" (identifier "pfVar21") ([ "[") (number_literal "2") (] "]")) (- "-") (identifier "fVar6")) () ")")) (* "*") (identifier "fVar27")) (+ "+") (identifier "local_4d0"))) (; ";")) (expression_statement "pfVar21 = pfVar22;" (assignment_expression "pfVar21 = pfVar22" (identifier "pfVar21") (= "=") (identifier "pfVar22")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_2c0 + (int)local_4d4 * 4 != pfVar22)" (( "(") (binary_expression "local_2c0 + (int)local_4d4 * 4 != pfVar22" (binary_expression "local_2c0 + (int)local_4d4 * 4" (identifier "local_2c0") (+ "+") (binary_expression "(int)local_4d4 * 4" (cast_expression "(int)local_4d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4d4")) (* "*") (number_literal "4"))) (!= "!=") (identifier "pfVar22")) () ")")) (; ";")) (} "}")))) (goto_statement "goto LAB_001ed457;" (goto "goto") (statement_identifier "LAB_001ed457") (; ";")) (} "}"))) (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xbb14d);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xbb14d)" (identifier "fVar2") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xbb14d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xbb14d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xbb14d)" (( "(") (binary_expression "unaff_EDI + 0xbb14d" (identifier "unaff_EDI") (+ "+") (number_literal "0xbb14d")) () ")"))))) (; ";")) (expression_statement "local_4dc = -NAN;" (assignment_expression "local_4dc = -NAN" (identifier "local_4dc") (= "=") (unary_expression "-NAN" (- "-") (identifier "NAN"))) (; ";")) (expression_statement "local_4e0 = 0.0;" (assignment_expression "local_4e0 = 0.0" (identifier "local_4e0") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "fVar3 = *(float *)(unaff_EDI + 0xb227d);" (assignment_expression "fVar3 = *(float *)(unaff_EDI + 0xb227d)" (identifier "fVar3") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xb227d)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xb227d)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xb227d)" (( "(") (binary_expression "unaff_EDI + 0xb227d" (identifier "unaff_EDI") (+ "+") (number_literal "0xb227d")) () ")"))))) (; ";")) (expression_statement "uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);" (assignment_expression "uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3)" (identifier "uVar15") (= "=") (cast_expression "(uint)ROUND(local_2c0[0] * fVar2 + fVar3)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "ROUND(local_2c0[0] * fVar2 + fVar3)" (identifier "ROUND") (argument_list "(local_2c0[0] * fVar2 + fVar3)" (( "(") (binary_expression "local_2c0[0] * fVar2 + fVar3" (binary_expression "local_2c0[0] * fVar2" (subscript_expression "local_2c0[0]" (identifier "local_2c0") ([ "[") (number_literal "0") (] "]")) (* "*") (identifier "fVar2")) (+ "+") (identifier "fVar3")) () ")"))))) (; ";")) (if_statement "if (0xff < uVar15) {\n              uVar15 = 0xff;\n            }" (if "if") (parenthesized_expression "(0xff < uVar15)" (( "(") (binary_expression "0xff < uVar15" (number_literal "0xff") (< "<") (identifier "uVar15")) () ")")) (compound_statement "{\n              uVar15 = 0xff;\n            }" ({ "{") (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" (identifier "uVar15") (= "=") (number_literal "0xff")) (; ";")) (} "}"))) (expression_statement "local_c0[0] = (byte)uVar15;" (assignment_expression "local_c0[0] = (byte)uVar15" (subscript_expression "local_c0[0]" (identifier "local_c0") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(byte)uVar15" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar15"))) (; ";")) (expression_statement "uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);" (assignment_expression "uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3)" (identifier "uVar19") (= "=") (cast_expression "(uint)ROUND(local_2c0[1] * fVar2 + fVar3)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "ROUND(local_2c0[1] * fVar2 + fVar3)" (identifier "ROUND") (argument_list "(local_2c0[1] * fVar2 + fVar3)" (( "(") (binary_expression "local_2c0[1] * fVar2 + fVar3" (binary_expression "local_2c0[1] * fVar2" (subscript_expression "local_2c0[1]" (identifier "local_2c0") ([ "[") (number_literal "1") (] "]")) (* "*") (identifier "fVar2")) (+ "+") (identifier "fVar3")) () ")"))))) (; ";")) (if_statement "if (0xff < uVar19) {\n              uVar19 = 0xff;\n            }" (if "if") (parenthesized_expression "(0xff < uVar19)" (( "(") (binary_expression "0xff < uVar19" (number_literal "0xff") (< "<") (identifier "uVar19")) () ")")) (compound_statement "{\n              uVar19 = 0xff;\n            }" ({ "{") (expression_statement "uVar19 = 0xff;" (assignment_expression "uVar19 = 0xff" (identifier "uVar19") (= "=") (number_literal "0xff")) (; ";")) (} "}"))) (expression_statement "local_c0[1] = (char)uVar19;" (assignment_expression "local_c0[1] = (char)uVar19" (subscript_expression "local_c0[1]" (identifier "local_c0") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)uVar19" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar19"))) (; ";")) (expression_statement "uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);" (assignment_expression "uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3)" (identifier "uVar29") (= "=") (cast_expression "(uint)ROUND(fVar2 * local_2c0[2] + fVar3)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "ROUND(fVar2 * local_2c0[2] + fVar3)" (identifier "ROUND") (argument_list "(fVar2 * local_2c0[2] + fVar3)" (( "(") (binary_expression "fVar2 * local_2c0[2] + fVar3" (binary_expression "fVar2 * local_2c0[2]" (identifier "fVar2") (* "*") (subscript_expression "local_2c0[2]" (identifier "local_2c0") ([ "[") (number_literal "2") (] "]"))) (+ "+") (identifier "fVar3")) () ")"))))) (; ";")) (if_statement "if (0xff < uVar29) {\n              uVar29 = 0xff;\n            }" (if "if") (parenthesized_expression "(0xff < uVar29)" (( "(") (binary_expression "0xff < uVar29" (number_literal "0xff") (< "<") (identifier "uVar29")) () ")")) (compound_statement "{\n              uVar29 = 0xff;\n            }" ({ "{") (expression_statement "uVar29 = 0xff;" (assignment_expression "uVar29 = 0xff" (identifier "uVar29") (= "=") (number_literal "0xff")) (; ";")) (} "}"))) (expression_statement "local_c0[2] = (char)uVar29;" (assignment_expression "local_c0[2] = (char)uVar29" (subscript_expression "local_c0[2]" (identifier "local_c0") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)uVar29" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar29"))) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar20 = uVar15;" (assignment_expression "uVar20 = uVar15" (identifier "uVar20") (= "=") (identifier "uVar15")) (; ";")) (while_statement "while( true ) {\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              iVar24 = (int)local_4e0 * 3;\n              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);\n              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);\n              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));\n              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];\n              if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }\n              if (local_4e0 == 1.4013e-45) break;\n              uVar20 = uVar15 & 0xff;\n              local_4e0 = 1.4013e-45;\n            }" ({ "{") (expression_statement "iVar24 = (int)local_4e0 * 3;" (assignment_expression "iVar24 = (int)local_4e0 * 3" (identifier "iVar24") (= "=") (binary_expression "(int)local_4e0 * 3" (cast_expression "(int)local_4e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4e0")) (* "*") (number_literal "3"))) (; ";")) (expression_statement "pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);" (assignment_expression "pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24)" (identifier "pbVar31") (= "=") (cast_expression "(byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24)" (( "(") (binary_expression "*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24" (binary_expression "*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6" (pointer_expression "*(int *)(unaff_EDI + 0x1ef625)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x1ef625)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x1ef625)" (( "(") (binary_expression "unaff_EDI + 0x1ef625" (identifier "unaff_EDI") (+ "+") (number_literal "0x1ef625")) () ")")))) (+ "+") (binary_expression "(uVar20 & 0xff) * 6" (parenthesized_expression "(uVar20 & 0xff)" (( "(") (binary_expression "uVar20 & 0xff" (identifier "uVar20") (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "6"))) (+ "+") (identifier "iVar24")) () ")")))) (; ";")) (expression_statement "pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);" (assignment_expression "pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24)" (identifier "pbVar28") (= "=") (cast_expression "(byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24)" (( "(") (binary_expression "(uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24" (binary_expression "(uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629)" (binary_expression "(uVar19 & 0xff) * 6" (parenthesized_expression "(uVar19 & 0xff)" (( "(") (binary_expression "uVar19 & 0xff" (identifier "uVar19") (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "6")) (+ "+") (pointer_expression "*(int *)(unaff_EDI + 0x1ef629)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x1ef629)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x1ef629)" (( "(") (binary_expression "unaff_EDI + 0x1ef629" (identifier "unaff_EDI") (+ "+") (number_literal "0x1ef629")) () ")"))))) (+ "+") (identifier "iVar24")) () ")")))) (; ";")) (expression_statement "pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));" (assignment_expression "pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d))" (identifier "pbVar18") (= "=") (cast_expression "(byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d))" (( "(") (binary_expression "iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d)" (binary_expression "iVar24 + (uVar29 & 0xff) * 6" (identifier "iVar24") (+ "+") (binary_expression "(uVar29 & 0xff) * 6" (parenthesized_expression "(uVar29 & 0xff)" (( "(") (binary_expression "uVar29 & 0xff" (identifier "uVar29") (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "6"))) (+ "+") (pointer_expression "*(int *)(unaff_EDI + 0x1ef62d)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x1ef62d)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x1ef62d)" (( "(") (binary_expression "unaff_EDI + 0x1ef62d" (identifier "unaff_EDI") (+ "+") (number_literal "0x1ef62d")) () ")"))))) () ")")))) (; ";")) (expression_statement "uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2];" (assignment_expression "uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2]" (identifier "uVar20") (= "=") (binary_expression "(uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +\n                       (uint)pbVar31[2] * (uint)pbVar31[2]" (binary_expression "(uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2]" (binary_expression "(uint)pbVar28[2] * (uint)pbVar28[2]" (cast_expression "(uint)pbVar28[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar28[2]" (identifier "pbVar28") ([ "[") (number_literal "2") (] "]"))) (* "*") (cast_expression "(uint)pbVar28[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar28[2]" (identifier "pbVar28") ([ "[") (number_literal "2") (] "]")))) (+ "+") (binary_expression "(uint)pbVar18[2] * (uint)pbVar18[2]" (cast_expression "(uint)pbVar18[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar18[2]" (identifier "pbVar18") ([ "[") (number_literal "2") (] "]"))) (* "*") (cast_expression "(uint)pbVar18[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar18[2]" (identifier "pbVar18") ([ "[") (number_literal "2") (] "]"))))) (+ "+") (binary_expression "(uint)pbVar31[2] * (uint)pbVar31[2]" (cast_expression "(uint)pbVar31[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar31[2]" (identifier "pbVar31") ([ "[") (number_literal "2") (] "]"))) (* "*") (cast_expression "(uint)pbVar31[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar31[2]" (identifier "pbVar31") ([ "[") (number_literal "2") (] "]")))))) (; ";")) (if_statement "if (uVar20 <= (uint)local_4dc) {\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }" (if "if") (parenthesized_expression "(uVar20 <= (uint)local_4dc)" (( "(") (binary_expression "uVar20 <= (uint)local_4dc" (identifier "uVar20") (<= "<=") (cast_expression "(uint)local_4dc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4dc"))) () ")")) (compound_statement "{\n                fVar2 = *(float *)(unaff_EDI + 0xd9031);\n                local_39c = (float)*pbVar31 / fVar2;\n                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);\n                local_394 = (float)*pbVar18 / fVar2;\n                local_38c = (float)pbVar31[1] / fVar2;\n                bVar25 = local_4e0._0_1_ * '\x02';\n                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));\n                local_384 = (float *)((float)pbVar18[1] / fVar2);\n                local_4dc = (float)uVar20;\n              }" ({ "{") (expression_statement "fVar2 = *(float *)(unaff_EDI + 0xd9031);" (assignment_expression "fVar2 = *(float *)(unaff_EDI + 0xd9031)" (identifier "fVar2") (= "=") (pointer_expression "*(float *)(unaff_EDI + 0xd9031)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xd9031)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xd9031)" (( "(") (binary_expression "unaff_EDI + 0xd9031" (identifier "unaff_EDI") (+ "+") (number_literal "0xd9031")) () ")"))))) (; ";")) (expression_statement "local_39c = (float)*pbVar31 / fVar2;" (assignment_expression "local_39c = (float)*pbVar31 / fVar2" (identifier "local_39c") (= "=") (binary_expression "(float)*pbVar31 / fVar2" (cast_expression "(float)*pbVar31" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*pbVar31" (* "*") (identifier "pbVar31"))) (/ "/") (identifier "fVar2"))) (; ";")) (expression_statement "local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);" (assignment_expression "local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975)" (identifier "local_398") (= "=") (binary_expression "(float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975)" (cast_expression "(float)*pbVar28" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28"))) (/ "/") (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xdf975)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdf975)" (( "(") (binary_expression "unaff_EDI + 0xdf975" (identifier "unaff_EDI") (+ "+") (number_literal "0xdf975")) () ")")))))) (; ";")) (expression_statement "local_394 = (float)*pbVar18 / fVar2;" (assignment_expression "local_394 = (float)*pbVar18 / fVar2" (identifier "local_394") (= "=") (binary_expression "(float)*pbVar18 / fVar2" (cast_expression "(float)*pbVar18" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18"))) (/ "/") (identifier "fVar2"))) (; ";")) (expression_statement "local_38c = (float)pbVar31[1] / fVar2;" (assignment_expression "local_38c = (float)pbVar31[1] / fVar2" (identifier "local_38c") (= "=") (binary_expression "(float)pbVar31[1] / fVar2" (cast_expression "(float)pbVar31[1]" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (subscript_expression "pbVar31[1]" (identifier "pbVar31") ([ "[") (number_literal "1") (] "]"))) (/ "/") (identifier "fVar2"))) (; ";")) (expression_statement "bVar25 = local_4e0._0_1_ * '\x02';" (assignment_expression "bVar25 = local_4e0._0_1_ * '\x02'" (identifier "bVar25") (= "=") (binary_expression "local_4e0._0_1_ * '\x02'" (field_expression "local_4e0._0_1_" (identifier "local_4e0") (. ".") (field_identifier "_0_1_")) (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'")))) (; ";")) (expression_statement "local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));" (assignment_expression "local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975))" (identifier "local_388") (= "=") (cast_expression "(undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975))" (( "(") (binary_expression "(float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975)" (cast_expression "(float)pbVar28[1]" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (subscript_expression "pbVar28[1]" (identifier "pbVar28") ([ "[") (number_literal "1") (] "]"))) (/ "/") (pointer_expression "*(float *)(unaff_EDI + 0xdf975)" (* "*") (cast_expression "(float *)(unaff_EDI + 0xdf975)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xdf975)" (( "(") (binary_expression "unaff_EDI + 0xdf975" (identifier "unaff_EDI") (+ "+") (number_literal "0xdf975")) () ")"))))) () ")")))) (; ";")) (expression_statement "local_384 = (float *)((float)pbVar18[1] / fVar2);" (assignment_expression "local_384 = (float *)((float)pbVar18[1] / fVar2)" (identifier "local_384") (= "=") (cast_expression "(float *)((float)pbVar18[1] / fVar2)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((float)pbVar18[1] / fVar2)" (( "(") (binary_expression "(float)pbVar18[1] / fVar2" (cast_expression "(float)pbVar18[1]" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (subscript_expression "pbVar18[1]" (identifier "pbVar18") ([ "[") (number_literal "1") (] "]"))) (/ "/") (identifier "fVar2")) () ")")))) (; ";")) (expression_statement "local_4dc = (float)uVar20;" (assignment_expression "local_4dc = (float)uVar20" (identifier "local_4dc") (= "=") (cast_expression "(float)uVar20" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar20"))) (; ";")) (} "}"))) (if_statement "if (local_4e0 == 1.4013e-45) break;" (if "if") (parenthesized_expression "(local_4e0 == 1.4013e-45)" (( "(") (binary_expression "local_4e0 == 1.4013e-45" (identifier "local_4e0") (== "==") (number_literal "1.4013e-45")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar20 = uVar15 & 0xff;" (assignment_expression "uVar20 = uVar15 & 0xff" (identifier "uVar20") (= "=") (binary_expression "uVar15 & 0xff" (identifier "uVar15") (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "local_4e0 = 1.4013e-45;" (assignment_expression "local_4e0 = 1.4013e-45" (identifier "local_4e0") (= "=") (number_literal "1.4013e-45")) (; ";")) (} "}"))) (expression_statement "pbVar28 = local_b0;" (assignment_expression "pbVar28 = local_b0" (identifier "pbVar28") (= "=") (identifier "local_b0")) (; ";")) (do_statement "do {\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            } while (local_a0 != pbVar28);" (do "do") (compound_statement "{\n              *pbVar28 = bVar25;\n              pbVar28 = pbVar28 + 1;\n            }" ({ "{") (expression_statement "*pbVar28 = bVar25;" (assignment_expression "*pbVar28 = bVar25" (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" (identifier "pbVar28") (= "=") (binary_expression "pbVar28 + 1" (identifier "pbVar28") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_a0 != pbVar28)" (( "(") (binary_expression "local_a0 != pbVar28" (identifier "local_a0") (!= "!=") (identifier "pbVar28")) () ")")) (; ";")) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            } while (iVar24 != 0x10);" (do "do") (compound_statement "{\n              while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }\n              local_a0[iVar24] = 3;\n              iVar24 = iVar24 + 1;\n            }" ({ "{") (while_statement "while (local_300[iVar24] != -NAN) {\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }" (while "while") (parenthesized_expression "(local_300[iVar24] != -NAN)" (( "(") (binary_expression "local_300[iVar24] != -NAN" (subscript_expression "local_300[iVar24]" (identifier "local_300") ([ "[") (identifier "iVar24") (] "]")) (!= "!=") (unary_expression "-NAN" (- "-") (identifier "NAN"))) () ")")) (compound_statement "{\n                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];\n                iVar24 = iVar24 + 1;\n                if (iVar24 == 0x10) goto LAB_001edf11;\n              }" ({ "{") (expression_statement "local_a0[iVar24] = local_b0[(int)local_300[iVar24]];" (assignment_expression "local_a0[iVar24] = local_b0[(int)local_300[iVar24]]" (subscript_expression "local_a0[iVar24]" (identifier "local_a0") ([ "[") (identifier "iVar24") (] "]")) (= "=") (subscript_expression "local_b0[(int)local_300[iVar24]]" (identifier "local_b0") ([ "[") (cast_expression "(int)local_300[iVar24]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_300[iVar24]" (identifier "local_300") ([ "[") (identifier "iVar24") (] "]"))) (] "]"))) (; ";")) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar24 == 0x10) goto LAB_001edf11;" (if "if") (parenthesized_expression "(iVar24 == 0x10)" (( "(") (binary_expression "iVar24 == 0x10" (identifier "iVar24") (== "==") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_001edf11;" (goto "goto") (statement_identifier "LAB_001edf11") (; ";"))) (} "}"))) (expression_statement "local_a0[iVar24] = 3;" (assignment_expression "local_a0[iVar24] = 3" (subscript_expression "local_a0[iVar24]" (identifier "local_a0") ([ "[") (identifier "iVar24") (] "]")) (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != 0x10)" (( "(") (binary_expression "iVar24 != 0x10" (identifier "iVar24") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (labeled_statement "LAB_001edf11:\n            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);" (statement_identifier "LAB_001edf11") (: ":") (expression_statement "FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);" (call_expression "FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0)" (identifier "FUN_001e9760") (argument_list "(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0)" (( "(") (identifier "local_39c") (, ",") (identifier "local_398") (, ",") (identifier "local_394") (, ",") (identifier "local_38c") (, ",") (identifier "local_388") (, ",") (identifier "local_384") (, ",") (identifier "local_a0") () ")"))) (; ";"))) (} "}")))) (expression_statement "uVar19 = *(uint *)(iVar11 + 0x18);" (assignment_expression "uVar19 = *(uint *)(iVar11 + 0x18)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(iVar11 + 0x18)" (* "*") (cast_expression "(uint *)(iVar11 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x18)" (( "(") (binary_expression "iVar11 + 0x18" (identifier "iVar11") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar15 = *(uint *)(iVar11 + 0x1c);" (assignment_expression "uVar15 = *(uint *)(iVar11 + 0x1c)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(iVar11 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar11 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1c)" (( "(") (binary_expression "iVar11 + 0x1c" (identifier "iVar11") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar29 = uVar1;" (assignment_expression "uVar29 = uVar1" (identifier "uVar29") (= "=") (identifier "uVar1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uVar1 < (int)uVar19)" (( "(") (binary_expression "(int)uVar1 < (int)uVar19" (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1")) (< "<") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) () ")")) (; ";")) (} "}"))) (expression_statement "local_474 = uVar35;" (assignment_expression "local_474 = uVar35" (identifier "local_474") (= "=") (identifier "uVar35")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uVar35 < (int)uVar15)" (( "(") (binary_expression "(int)uVar35 < (int)uVar15" (cast_expression "(int)uVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar35")) (< "<") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15"))) () ")")) (; ";")) (} "}"))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0029eab0();\n  }" ({ "{") (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" (identifier "FUN_0029eab0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* 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 *var_55,size_t compression,type_2 clusterFit,
                type_2 weightByAlpha,type_3 *exception)

{
  type_4 var_6;
  float var_15;
  float var_14;
  float var_22;
  float var_17;
  type_5 var_63;
  int var_73;
  type_6 *pPVar8;
  float var_23;
  float var_25;
  float var_69;
  double var_51;
  char var_66;
  type_7 start_00;
  type_7 start_01;
  type_7 axis_00;
  type_7 axis_01;
  type_7 end_00;
  type_7 end_01;
  type_8 uVar14;
  type_9 var_43;
  int var_38;
  type_1 *image_00;
  size_t var_5;
  int var_11;
  type_4 var_4;
  float *var_58;
  type_2 var_34;
  type_9 *var_37;
  type_4 var_70;
  type_4 var_72;
  type_5 *var_48;
  size_t var_7;
  type_9 var_26;
  type_5 uVar27;
  size_t var_57;
  type_9 var_28;
  int var_12;
  float var_21;
  type_4 var_71;
  type_9 *pbVar32;
  int var_36;
  type_9 var_40;
  type_9 *pbVar35;
  type_9 var_42;
  type_10 *var_56;
  float *var_61;
  type_11 *var_47;
  type_9 var_41;
  type_4 var_8;
  type_11 *var_32;
  type_5 *var_46;
  int var_24;
  int var_2;
  type_8 in_FPUControlWord;
  type_12 uVar44;
  type_13 MVar45;
  type_5 *in_stack_fffffb10;
  size_t in_stack_fffffb14;
  float var_18;
  float var_13;
  float var_27;
  float var_20;
  float var_16;
  float var_19;
  float var_68;
  float local_4b4;
  type_4 var_52;
  float local_4ac;
  type_10 *var_10;
  type_4 var_53;
  type_4 var_3;
  type_7 end;
  type_7 start;
  type_7 axis;
  type_14 local_41c;
  type_14 local_418;
  type_14 local_414;
  type_14 local_410;
  type_11 grid;
  type_11 gridrcp;
  type_11 half;
  type_11 onethird_onethird2;
  type_11 two;
  type_11 twonineths;
  type_11 twothirds_twothirds2;
  type_11 xSumwSum;
  type_15 __cwtmp;
  type_14 *local_388;
  type_7 *local_384;
  type_7 *local_380;
  type_11 *local_37c;
  type_11 *local_378;
  type_11 *local_374;
  type_11 *local_370;
  type_11 *local_36c;
  type_11 *local_368;
  type_11 *local_364;
  type_11 *local_360;
  type_11 *local_35c;
  type_14 local_358;
  type_11 *var_33;
  int local_350;
  int local_34c;
  int local_348;
  type_11 *local_344;
  ssize_t alphas [16];
  ssize_t map [16];
  type_11 var_39 [16];
  type_11 pointsWeights [16];
  type_5 indices [16];
  type_5 unordered [16];
  type_5 var_67 [128];
  
  uVar44 = var_1();
  var_12 = (int)((type_16)uVar44 >> 0x20);
  image_00 = (type_1 *)uVar44;
  var_3 = 0;
  var_73 = *(int *)(var_2 + 0x14);
  var_7 = image_00->rows;
  if (0 < (int)var_7) {
    do {
      var_5 = image_00->var_57;
      var_8 = var_3 + 4;
      var_4 = 0;
      if (0 < (int)var_5) {
        do {
          var_6 = var_4 + 4;
          var_57 = var_5 - var_4;
          if (var_6 < var_5) {
            var_57 = 4;
          }
          var_5 = var_7 - var_3;
          if (var_8 < var_7) {
            var_5 = 4;
          }
          var_10 = var_9(image_00,var_4,var_3,var_57,var_5,
                                       (type_3 *)compression);
          if (var_10 == (type_10 *)0x0) {
            var_7 = image_00->rows;
            break;
          }
          var_11 = 0;
          do {
            map[var_11] = -1;
            alphas[var_11] = -1;
            var_11 = var_11 + 1;
          } while (var_11 != 0x10);
          if ((int)var_5 < 1) {
            if (var_12 == 0x35545844) {
              var_27 = 0.0;
              var_52 = 0xff;
              var_68 = 0.0;
              var_53 = 5;
              local_4ac = 0.0;
              goto LAB_001ee710;
            }
            var_27 = 0.0;
            var_20 = 0.0;
            var_18 = 0.0;
            var_19 = 0.0;
            var_13 = 0.0;
            var_16 = 0.0;
            var_15 = 0.0;
            var_14 = var_19;
LAB_001ed457:
            var_19 = var_14;
            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_14 = 1.0;
            var_11 = 8;
            var_47 = (type_11 *)0x3f800000;
            var_17 = 1.0;
            do {
              var_23 = var_13 * var_14 + var_15 * (float)var_47 + var_16 * var_17;
              var_22 = var_18 * var_14 + var_19 * (float)var_47 + var_15 * var_17;
              var_21 = var_14 * var_20 + (float)var_47 * var_18 + var_17 * var_13;
              var_14 = var_21;
              if (var_21 <= var_22 || var_22 != var_21) {
                var_14 = var_22;
              }
              var_17 = var_23;
              if (var_23 <= var_14) {
                var_17 = var_14;
              }
              if (var_17 < 0.0) {
                var_25 = -var_17;
                var_14 = -1.0;
              }
              else {
                var_14 = 1.0;
                var_25 = var_17;
              }
              if ((float)*(double *)(var_24 + 0xb2291) <= var_25) {
                var_14 = *(float *)(var_24 + 0xb2871) / var_17;
              }
              else {
                var_14 = var_14 / (float)*(double *)(var_24 + 0xb2291);
              }
              var_11 = var_11 + -1;
              var_17 = var_23 * var_14;
              var_47 = (type_11 *)(var_22 * var_14);
              var_14 = var_14 * var_21;
            } while (var_11 != 0);
            var_28 = (var_26 ^ 1) & 1 | var_27 == 0.0;
            if (var_28 == 0) {
              onethird_onethird2.w = 0.11111111;
              local_41c = 0x3f800000;
              local_418 = 0x3f800000;
              local_414 = 0x3f800000;
              local_410 = 0x3f800000;
              half.x = *(float *)(var_24 + 0xb227d);
              two.x = *(float *)(var_24 + 0xbdd29);
              onethird_onethird2.x = *(float *)(var_24 + 0xec3b9);
              twothirds_twothirds2.x = *(float *)(var_24 + 0xec3b5);
              twonineths.x = *(float *)(var_24 + 0xec3bd);
              twothirds_twothirds2.w = 0.44444445;
              grid.x = *(float *)(var_24 + 0xd9031);
              grid.w = 0.0;
              gridrcp.x = *(float *)(var_24 + 0xec3ad);
              gridrcp.w = 0.0;
              xSumwSum.x = 0.0;
              xSumwSum.y = 0.0;
              xSumwSum.z = 0.0;
              xSumwSum.w = 0.0;
              grid.y = 63.0;
              gridrcp.y = 0.015873017;
              axis_00.y = (float)pointsWeights;
              axis_00.x = var_14;
              axis_00.z = (float)&xSumwSum;
              grid.z = grid.x;
              gridrcp.z = gridrcp.x;
              half.y = half.x;
              half.z = half.x;
              half.w = half.x;
              onethird_onethird2.y = onethird_onethird2.x;
              onethird_onethird2.z = onethird_onethird2.x;
              two.y = two.x;
              two.z = two.x;
              two.w = two.x;
              twonineths.y = twonineths.x;
              twonineths.z = twonineths.x;
              twonineths.w = twonineths.x;
              twothirds_twothirds2.y = twothirds_twothirds2.x;
              twothirds_twothirds2.z = twothirds_twothirds2.x;
              var_29((size_t)var_17,var_47,axis_00,(type_11 *)var_67,(type_11 *)0x0,
                                in_stack_fffffb10,in_stack_fffffb14);
              var_19 = *(float *)(var_24 + 0xec3a1);
              var_32 = (type_11 *)0x0;
              var_47 = (type_11 *)0x0;
              var_16 = 0.0;
              var_20 = 0.0;
              var_13 = 0.0;
              do {
                MVar45 = var_30(ThreadResource);
                local_350 = (int)var_13;
                local_358 = var_19;
                local_34c = (int)var_20;
                local_348 = (int)var_16;
                ___cwtmp = var_27;
                local_388 = &local_41c;
                local_384 = &start;
                local_380 = &end;
                local_37c = &grid;
                local_378 = &gridrcp;
                local_374 = &half;
                local_370 = &onethird_onethird2;
                local_36c = pointsWeights;
                local_368 = &two;
                local_364 = &twonineths;
                local_360 = &twothirds_twothirds2;
                local_35c = &xSumwSum;
                var_33 = var_47;
                local_344 = var_32;
                var_31(var_24 + -0xd87,&__cwtmp,(int)MVar45,0);
                var_38 = local_348;
                var_36 = local_34c;
                var_11 = local_350;
                var_47 = var_33;
                var_19 = (float)local_358;
                var_13 = (float)local_350;
                var_20 = (float)local_34c;
                var_16 = (float)local_348;
                if (var_32 != var_33) break;
                var_32 = (type_11 *)((int)&var_32->x + 1);
                if (var_32 == (type_11 *)0x8) {
                  var_47 = (type_11 *)0x7;
                  break;
                }
                axis_01.y = (float)pointsWeights;
                axis_01.x = end.z - start.z;
                axis_01.z = (float)&xSumwSum;
                var_34 = var_29((size_t)(end.x - start.x),(type_11 *)(end.y - start.y)
                                           ,axis_01,(type_11 *)var_67,var_32,in_stack_fffffb10,
                                           in_stack_fffffb14);
              } while (var_34 != var_35);
              var_47 = (type_11 *)var_67 + (int)var_47;
              if (0 < var_11) {
                var_32 = var_47;
                do {
                  var_58 = &var_32->x;
                  var_32 = (type_11 *)((int)&var_32->x + 1);
                  unordered[*(type_9 *)var_58] = '\0';
                } while ((type_11 *)((int)&var_47->x + var_11) != var_32);
              }
              if (var_11 < var_36) {
                var_37 = (type_9 *)((int)&var_47->x + var_11);
                do {
                  var_28 = *var_37;
                  var_37 = var_37 + 1;
                  unordered[var_28] = '\x02';
                } while ((type_9 *)((int)&var_47->x + var_36) != var_37);
              }
              if (var_36 < var_38) {
                var_37 = (type_9 *)((int)&var_47->x + var_36);
                do {
                  var_28 = *var_37;
                  var_37 = var_37 + 1;
                  unordered[var_28] = '\x03';
                } while ((type_9 *)((int)&var_47->x + var_38) != var_37);
              }
              if (var_38 < (int)var_27) {
                var_37 = (type_9 *)((int)&var_47->x + var_38);
                do {
                  var_28 = *var_37;
                  var_37 = var_37 + 1;
                  unordered[var_28] = '\x01';
                } while ((type_9 *)((int)&var_47->x + (int)var_27) != var_37);
              }
              var_11 = 0;
              do {
                while (map[var_11] != -1) {
                  indices[var_11] = unordered[map[var_11]];
                  var_11 = var_11 + 1;
                  if (var_11 == 0x10) goto LAB_001edb47;
                }
                indices[var_11] = '\x03';
                var_11 = var_11 + 1;
              } while (var_11 != 0x10);
            }
            else {
              if (var_27 == 0.0) {
                var_15 = *(float *)(var_24 + 0xb227d);
                start.z = 0.0;
                start.y = 0.0;
LAB_001ee1db:
                var_14 = start.y * *(float *)(var_24 + 0xdf975) + *(float *)(var_24 + 0xb227d);
LAB_001ee1e7:
                if (start.z < 0.0) goto LAB_001ee13a;
LAB_001ee1f9:
                if (1.0 < start.z) {
                  var_17 = *(float *)(var_24 + 0xec399);
                }
                else {
                  var_17 = *(float *)(var_24 + 0xb227d) +
                          start.z * *(float *)(var_24 + 0xd9031);
                }
              }
              else {
                start.y = var_39[0].y;
                start.z = var_39[0].z;
                end.x = var_39[0].x;
                end.y = var_39[0].y;
                end.z = var_39[0].z;
                var_20 = var_14 * var_39[0].z + (float)var_47 * var_39[0].y + var_17 * var_39[0].x
                ;
                var_13 = var_39[0].x;
                if (1 < (int)var_27) {
                  local_4b4 = var_39[0].z;
                  var_42 = 0;
                  var_41 = 0;
                  local_4ac = var_39[0].y;
                  var_68 = var_39[0].x;
                  var_32 = var_39;
                  var_16 = var_39[0].y;
                  var_43 = 0;
                  var_19 = var_39[0].z;
                  var_18 = var_20;
                  var_40 = 0;
                  do {
                    while( true ) {
                      var_15 = var_32[1].x;
                      var_22 = var_32[1].y;
                      var_21 = var_32[1].z;
                      var_23 = var_14 * var_21 + (float)var_47 * var_22 + var_17 * var_15;
                      if (var_18 <= var_23) break;
                      var_32 = var_32 + 1;
                      var_40 = var_28;
                      var_18 = var_23;
                      var_13 = var_15;
                      var_16 = var_22;
                      var_19 = var_21;
                      if (var_32 == var_39 + (int)var_27 + -1) goto LAB_001ee095;
                    }
                    if (var_20 < var_23) {
                      var_20 = var_23;
                      var_68 = var_15;
                      local_4b4 = var_21;
                      local_4ac = var_22;
                      var_42 = var_28;
                      var_41 = var_28;
                      var_43 = var_28;
                    }
                    var_32 = var_32 + 1;
                  } while (var_32 != var_39 + (int)var_27 + -1);
LAB_001ee095:
                  var_15 = var_16;
                  var_14 = var_19;
                  if (var_40 == 0) {
                    var_13 = var_39[0].x;
                    var_15 = start.y;
                    var_14 = start.z;
                  }
                  start.z = var_14;
                  start.y = var_15;
                  if (var_41 != 0) {
                    end.x = var_68;
                  }
                  if (var_42 != 0) {
                    end.y = local_4ac;
                  }
                  if (var_43 != 0) {
                    end.z = local_4b4;
                  }
                }
                if (0.0 <= var_13) {
                  if (var_13 <= 1.0) {
                    var_15 = *(float *)(var_24 + 0xb227d) +
                            var_13 * *(float *)(var_24 + 0xd9031);
                  }
                  else {
                    var_15 = *(float *)(var_24 + 0xec399);
                  }
                }
                else {
                  var_15 = *(float *)(var_24 + 0xb227d);
                }
                if (0.0 <= start.y) {
                  if (start.y <= 1.0) goto LAB_001ee1db;
                  var_14 = *(float *)(var_24 + 0xec39d);
                  goto LAB_001ee1e7;
                }
                var_14 = *(float *)(var_24 + 0xb227d);
                if (0.0 <= start.z) goto LAB_001ee1f9;
LAB_001ee13a:
                var_17 = *(float *)(var_24 + 0xb227d);
              }
              start.x = var_44(var_15) * *(float *)(var_24 + 0xec3ad);
              start.y = *(float *)(var_24 + 0xec3b1) * var_44(var_14);
              start.z = var_44(var_17) * *(float *)(var_24 + 0xec3ad);
              if (end.x < 0.0) {
                var_15 = *(float *)(var_24 + 0xb227d);
LAB_001ee39c:
                if (0.0 <= end.y) goto LAB_001ee3ad;
LAB_001ee81d:
                var_14 = *(float *)(var_24 + 0xb227d);
LAB_001ee3c3:
                if (0.0 <= end.z) goto LAB_001ee3d4;
LAB_001ee7e9:
                var_17 = *(float *)(var_24 + 0xb227d);
              }
              else {
                if (1.0 < end.x) {
                  var_15 = *(float *)(var_24 + 0xec399);
                  goto LAB_001ee39c;
                }
                var_15 = *(float *)(var_24 + 0xb227d) + end.x * *(float *)(var_24 + 0xd9031);
                if (end.y < 0.0) goto LAB_001ee81d;
LAB_001ee3ad:
                if (1.0 < end.y) {
                  var_14 = *(float *)(var_24 + 0xec39d);
                  goto LAB_001ee3c3;
                }
                var_14 = end.y * *(float *)(var_24 + 0xdf975) + *(float *)(var_24 + 0xb227d);
                if (end.z < 0.0) goto LAB_001ee7e9;
LAB_001ee3d4:
                if (1.0 < end.z) {
                  var_17 = *(float *)(var_24 + 0xec399);
                }
                else {
                  var_17 = end.z * *(float *)(var_24 + 0xd9031) + *(float *)(var_24 + 0xb227d);
                }
              }
              uVar14 = (type_8)((type_4)___cwtmp >> 0x10);
              if (var_17 <= 0.0) {
                ___cwtmp = (float)(var_45(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x800);
              }
              else {
                ___cwtmp = (float)(var_45(uVar14,in_FPUControlWord) & 0xfffff3ff | 0x400);
              }
              xSumwSum.x = (float)var_45(xSumwSum.x._2_2_,in_FPUControlWord);
              end.x = var_44(var_15) * *(float *)(var_24 + 0xec3ad);
              pointsWeights[0].x = start.x;
              end.y = *(float *)(var_24 + 0xec3b1) * var_44(var_14);
              pointsWeights[0].y = start.y;
              end.z = var_44(var_17) * *(float *)(var_24 + 0xec3ad);
              pointsWeights[0].z = start.z;
              pointsWeights[0].w = end.x;
              var_15 = *(float *)(var_24 + 0xec3b5);
              var_14 = *(float *)(var_24 + 0xec3b9);
              pointsWeights[1].x = end.y;
              pointsWeights[1].y = end.z;
              pointsWeights[1].z = end.x * var_14 + start.x * var_15;
              pointsWeights[1].w = end.y * var_14 + start.y * var_15;
              pointsWeights[2].x = end.z * var_14 + start.z * var_15;
              pointsWeights[2].y = end.x * var_15 + start.x * var_14;
              pointsWeights[2].z = end.y * var_15 + start.y * var_14;
              pointsWeights[2].w = var_14 * start.z + end.z * var_15;
              if (0 < (int)var_27) {
                var_46 = var_67;
                var_47 = var_39;
                var_48 = var_46 + (int)var_27;
                do {
                  var_11 = 0;
                  var_36 = 0;
                  var_15 = *(float *)(var_24 + 0xec3a1);
                  var_32 = pointsWeights;
                  do {
                    var_14 = var_47->x - var_32->x;
                    var_22 = var_47->y - var_32->y;
                    var_17 = var_47->z - var_32->z;
                    var_14 = var_17 * var_17 + var_22 * var_22 + var_14 * var_14;
                    if (var_14 < var_15) {
                      var_11 = var_36;
                      var_15 = var_14;
                    }
                    var_36 = var_36 + 1;
                    var_32 = (type_11 *)&var_32->w;
                  } while (var_36 != 4);
                  *var_46 = (type_5)var_11;
                  var_46 = var_46 + 1;
                  var_47 = var_47 + 1;
                } while (var_46 != var_48);
              }
              var_11 = 0;
              do {
                if (map[var_11] == -1) {
                  indices[var_11] = '\x03';
                }
                else {
                  indices[var_11] = var_67[map[var_11]];
                }
                var_11 = var_11 + 1;
              } while (var_11 != 0x10);
            }
LAB_001edb47:
            start_00.y = start.y;
            start_00.x = start.x;
            start_00.z = start.z;
            end_00.y = end.y;
            end_00.x = end.x;
            end_00.z = end.z;
            var_49(image_00,start_00,end_00,indices);
          }
          else {
            var_52 = 0xff;
            var_27 = 0.0;
            local_4ac = 3.57331e-43;
            var_68 = 0.0;
            var_53 = 0;
            var_19 = 0.0;
            do {
              if (0 < (int)var_57) {
                pPVar8 = image_00->channel_map;
                var_7 = image_00->number_channels;
                var_18 = (float)((int)var_19 << 4);
                var_56 = var_10;
                do {
                  var_4 = 0xff;
                  var_13._0_1_ = 0xff;
                  if (var_12 == 0x35545844) {
                    if (image_00->channel_map[4].traits == var_50) {
LAB_001ed600:
                      var_68 = 3.57331e-43;
                    }
                    else if (var_56[image_00->channel_map[4].offset] <= 0.0) {
                      var_4 = 0;
                      var_13._0_1_ = 0;
                      var_52 = 0;
                    }
                    else {
                      var_51 = var_56[image_00->channel_map[4].offset] /
                               (double)*(float *)(var_24 + 0xbb149);
                      if ((double)*(float *)(var_24 + 0xbb14d) <= var_51) goto LAB_001ed600;
                      var_13._0_1_ =
                           (type_9)(short)var_44(var_51 + (double)*(float *)(var_24 + 0xb227d));
                      var_4 = (type_4)var_13._0_1_;
                      if (var_4 < var_52) {
                        var_52 = var_4;
                      }
                      if ((type_4)var_68 < var_4) {
                        var_68 = (float)var_4;
                      }
                      if (var_13._0_1_ == 0) {
                        var_4 = 0;
                      }
                      else {
                        if (var_4 < (type_4)local_4ac) {
                          local_4ac = (float)var_4;
                        }
                        if (var_13._0_1_ == 0xff) {
                          var_4 = 0xff;
                        }
                        else if (var_53 < var_4) {
                          var_53 = var_4;
                        }
                      }
                    }
                  }
                  *(type_4 *)((int)alphas + (int)var_18) = var_4;
                  var_15 = (float)var_56[pPVar8->offset];
                  if (var_54(var_15)) {
                    var_15 = 0.0;
                  }
                  else if (var_15 <= 0.0) {
                    var_15 = 0.0;
                  }
                  else {
                    var_15 = var_15 / *(float *)(var_24 + 0xbb149);
                    if (*(float *)(var_24 + 0xbb14d) <= var_15) {
                      var_15 = 1.0;
                    }
                    else {
                      var_15 = (float)((short)var_44(var_15 + *(float *)(var_24 + 0xb227d)) & 0xff)
                              / *(float *)(var_24 + 0xbb14d);
                    }
                  }
                  var_14 = (float)var_56[pPVar8[1].offset];
                  if (var_54(var_14)) {
                    var_14 = 0.0;
                  }
                  else if (var_14 <= 0.0) {
                    var_14 = 0.0;
                  }
                  else {
                    var_14 = var_14 / *(float *)(var_24 + 0xbb149);
                    if (*(float *)(var_24 + 0xbb14d) <= var_14) {
                      var_14 = 1.0;
                    }
                    else {
                      var_14 = (float)((short)var_44(var_14 + *(float *)(var_24 + 0xb227d)) & 0xff)
                              / *(float *)(var_24 + 0xbb14d);
                    }
                  }
                  var_17 = (float)var_56[pPVar8[2].offset];
                  if (var_54(var_17)) {
                    var_17 = 0.0;
                  }
                  else if (var_17 <= 0.0) {
                    var_17 = 0.0;
                  }
                  else {
                    var_17 = var_17 / *(float *)(var_24 + 0xbb149);
                    if (*(float *)(var_24 + 0xbb14d) <= var_17) {
                      var_17 = 1.0;
                    }
                    else {
                      var_17 = (float)((short)var_44(var_17 + *(float *)(var_24 + 0xb227d)) & 0xff)
                              / *(float *)(var_24 + 0xbb14d);
                    }
                  }
                  if (var_55 == (type_1 *)0x0) {
                    var_22 = 1.0;
                  }
                  else {
                    var_22 = (float)(var_4 + 1) * *(float *)(var_24 + 0xec3a5);
                  }
                  var_56 = var_56 + var_7;
                  if (0 < (int)var_27) {
                    var_47 = var_39;
                    var_21 = 0.0;
                    do {
                      if ((((var_47->x == var_15) && (var_47->y == var_14)) && (var_47->z == var_17)
                          ) && (((char)var_13._0_1_ < '\0' || (var_12 == 0x35545844)))) {
                        var_39[(int)var_21].w = var_22 + var_39[(int)var_21].w;
                        *(float *)((int)map + (int)var_18) = var_21;
                        goto LAB_001ed2a5;
                      }
                      var_21 = (float)((int)var_21 + 1);
                      var_47 = var_47 + 1;
                    } while (var_21 != var_27);
                  }
                  var_39[(int)var_27].x = var_15;
                  var_39[(int)var_27].y = var_14;
                  var_39[(int)var_27].z = var_17;
                  var_39[(int)var_27].w = var_22;
                  *(float *)((int)map + (int)var_18) = var_27;
                  var_27 = (float)((int)var_27 + 1);
LAB_001ed2a5:
                  var_18 = (float)((int)var_18 + 4);
                } while ((float)((var_57 + (int)var_19 * 4) * 4) != var_18);
                var_10 = (type_10 *)((int)var_10 + var_7 * 8 * var_57);
              }
              var_19 = (float)((int)var_19 + 1);
            } while (var_19 != (float)var_5);
            if (0 < (int)var_27) {
              var_58 = &var_39[0].w;
              var_61 = var_58 + (int)var_27 * 4;
              do {
                var_15 = *var_58;
                if (var_15 < 0.0) {
                  var_59(var_15);
                }
                *var_58 = var_60(var_15);
                var_58 = var_58 + 4;
              } while (var_61 != var_58);
            }
            if (var_12 == 0x35545844) {
              if (var_53 < (type_4)local_4ac) {
                local_4ac = (float)var_53;
              }
              else if (4 < var_53 - (int)local_4ac) goto LAB_001ee710;
              var_53 = 0xff;
              if ((int)local_4ac + 5U < 0x100) {
                var_53 = (int)local_4ac + 5U;
              }
              if (var_53 - (int)local_4ac < 5) {
                local_4ac = (float)(var_53 - 5);
              }
LAB_001ee710:
              var_46 = unordered;
              var_7 = var_62((size_t)local_4ac,var_53,5,alphas,var_46);
              if ((type_4)var_68 < var_52) {
LAB_001eea60:
                var_4 = (int)var_68 + 7;
                if (0xff < var_4) {
                  var_4 = 0xff;
                }
                if (var_4 - (int)var_68 < 7) {
                  var_52 = var_4 - 7;
                  var_68 = (float)var_4;
                }
                else {
                  var_52 = (type_4)var_68;
                  var_68 = (float)var_4;
                }
              }
              else if ((int)var_68 - var_52 < 7) {
                var_68 = (float)var_52;
                goto LAB_001eea60;
              }
              var_5 = var_62(var_52,(size_t)var_68,7,alphas,var_67);
              if (var_5 < var_7) {
                var_11 = 0;
                do {
                  while (var_63 = var_67[var_11], var_63 == '\0') {
                    var_46[var_11] = '\x01';
                    var_11 = var_11 + 1;
                    if (var_11 == 0x10) goto LAB_001ee8cf;
                  }
                  uVar27 = '\t' - var_63;
                  if (var_63 == '\x01') {
                    uVar27 = '\0';
                  }
                  var_36 = var_11 + 1;
                  var_46[var_11] = uVar27;
                  var_11 = var_36;
                } while (var_36 != 0x10);
              }
              else {
                var_52 = var_53;
                var_68 = local_4ac;
              }
LAB_001ee8cf:
              var_64(image_00,var_65(var_68,0));
              var_64(image_00,(type_5)var_52);
              do {
                var_11 = 0;
                var_4 = 0;
                do {
                  var_37 = var_46 + var_11;
                  var_66 = (char)var_11;
                  var_11 = var_11 + 1;
                  var_4 = var_4 | (type_4)*var_37 << (var_66 * '\x03' & 0x1fU);
                } while (var_11 != 8);
                var_46 = var_46 + 8;
                var_64(image_00,(type_5)var_4);
                var_64(image_00,(type_5)(var_4 >> 8));
                var_64(image_00,(type_5)(var_4 >> 0x10));
              } while (var_67 != var_46);
            }
            if (var_27 != 1.4013e-45) {
              var_17 = 0.0;
              if (var_27 == 0.0) {
                var_20 = 0.0;
                var_18 = 0.0;
                var_19 = 0.0;
                var_13 = 0.0;
                var_16 = 0.0;
                var_15 = var_17;
                var_14 = var_19;
              }
              else {
                var_19 = 0.0;
                var_68 = 0.0;
                var_15 = 0.0;
                var_47 = var_39;
                do {
                  var_14 = var_47->w;
                  var_32 = var_47 + 1;
                  var_15 = var_15 + var_14;
                  var_68 = var_47->x * var_14 + var_68;
                  var_19 = var_47->y * var_14 + var_19;
                  var_17 = var_14 * var_47->z + var_17;
                  var_47 = var_32;
                } while (var_39 + (int)var_27 != var_32);
                if (*(float *)(var_24 + 0xec3a9) < var_15) {
                  var_68 = var_68 / var_15;
                  var_19 = var_19 / var_15;
                  var_17 = var_17 / var_15;
                }
                var_20 = 0.0;
                var_18 = 0.0;
                var_14 = 0.0;
                var_15 = 0.0;
                var_13 = 0.0;
                var_16 = 0.0;
                var_47 = var_39;
                do {
                  var_32 = var_47 + 1;
                  var_23 = var_47->x - var_68;
                  var_25 = var_47->y - var_19;
                  var_69 = var_47->z - var_17;
                  var_22 = var_47->w;
                  var_21 = var_69 * var_22;
                  var_16 = var_22 * var_23 * var_23 + var_16;
                  var_15 = var_23 * var_25 * var_22 + var_15;
                  var_13 = var_23 * var_21 + var_13;
                  var_14 = var_25 * var_22 * var_25 + var_14;
                  var_18 = var_25 * var_21 + var_18;
                  var_20 = var_69 * var_21 + var_20;
                  var_47 = var_32;
                } while (var_39 + (int)var_27 != var_32);
              }
              goto LAB_001ed457;
            }
            var_15 = *(float *)(var_24 + 0xbb14d);
            var_13 = -var_54;
            var_18 = 0.0;
            var_14 = *(float *)(var_24 + 0xb227d);
            var_4 = (type_4)var_44(var_39[0].x * var_15 + var_14);
            if (0xff < var_4) {
              var_4 = 0xff;
            }
            indices[0] = (type_5)var_4;
            var_70 = (type_4)var_44(var_39[0].y * var_15 + var_14);
            if (0xff < var_70) {
              var_70 = 0xff;
            }
            indices[1] = (type_5)var_70;
            var_71 = (type_4)var_44(var_15 * var_39[0].z + var_14);
            if (0xff < var_71) {
              var_71 = 0xff;
            }
            indices[2] = (type_5)var_71;
            var_63 = '\0';
            var_72 = var_4;
            while( true ) {
              var_11 = (int)var_18 * 3;
              pbVar35 = (type_9 *)(*(int *)(var_24 + 0x1ef625) + (var_72 & 0xff) * 6 + var_11);
              var_37 = (type_9 *)((var_70 & 0xff) * 6 + *(int *)(var_24 + 0x1ef629) + var_11);
              pbVar32 = (type_9 *)(var_11 + (var_71 & 0xff) * 6 + *(int *)(var_24 + 0x1ef62d));
              var_72 = (type_4)var_37[2] * (type_4)var_37[2] + (type_4)pbVar32[2] * (type_4)pbVar32[2] +
                       (type_4)pbVar35[2] * (type_4)pbVar35[2];
              if (var_72 <= (type_4)var_13) {
                var_15 = *(float *)(var_24 + 0xd9031);
                xSumwSum.x = (float)*pbVar35 / var_15;
                xSumwSum.y = (float)*var_37 / *(float *)(var_24 + 0xdf975);
                xSumwSum.z = (float)*pbVar32 / var_15;
                ___cwtmp = (float)pbVar35[1] / var_15;
                var_63 = var_18._0_1_ * '\x02';
                local_388 = (type_14 *)((float)var_37[1] / *(float *)(var_24 + 0xdf975));
                local_384 = (type_7 *)((float)pbVar32[1] / var_15);
                var_13 = (float)var_72;
              }
              if (var_18 == 1.4013e-45) break;
              var_72 = var_4 & 0xff;
              var_18 = 1.4013e-45;
            }
            var_46 = unordered;
            do {
              *var_46 = var_63;
              var_46 = var_46 + 1;
            } while (var_67 != var_46);
            var_11 = 0;
            do {
              while (map[var_11] != -1) {
                var_67[var_11] = unordered[map[var_11]];
                var_11 = var_11 + 1;
                if (var_11 == 0x10) goto LAB_001edf11;
              }
              var_67[var_11] = '\x03';
              var_11 = var_11 + 1;
            } while (var_11 != 0x10);
LAB_001edf11:
            start_01.y = xSumwSum.y;
            start_01.x = xSumwSum.x;
            start_01.z = xSumwSum.z;
            end_01.y = (float)local_388;
            end_01.x = ___cwtmp;
            end_01.z = (float)local_384;
            var_49(image_00,start_01,end_01,var_67);
          }
          var_5 = image_00->var_57;
          var_7 = image_00->rows;
          var_4 = var_6;
        } while ((int)var_6 < (int)var_5);
      }
      var_3 = var_8;
    } while ((int)var_8 < (int)var_7);
  }
  if (var_73 != *(int *)(var_2 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_74();
  }
  return;
}


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

void MASKED(int param_1,undefined4 param_2)

{
  uint uVar1;
  float fVar2;
  float fVar3;
  float fVar4;
  float fVar5;
  float fVar6;
  double dVar7;
  float fVar8;
  char cVar9;
  undefined2 uVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  uint uVar15;
  undefined4 uVar16;
  int iVar17;
  byte *pbVar18;
  uint uVar19;
  uint uVar20;
  float *pfVar21;
  float *pfVar22;
  byte extraout_CL;
  byte bVar23;
  int iVar24;
  byte bVar25;
  int iVar26;
  float fVar27;
  byte *pbVar28;
  uint uVar29;
  byte bVar30;
  byte *pbVar31;
  byte bVar32;
  int iVar33;
  byte bVar34;
  uint uVar35;
  int unaff_EDI;
  int in_GS_OFFSET;
  undefined2 in_FPUControlWord;
  undefined8 uVar36;
  float local_4e0;
  float local_4dc;
  float local_4d4;
  float local_4d0;
  float local_4cc;
  float local_4c0;
  float local_4b8;
  float local_4b4;
  uint local_4b0;
  float local_4ac;
  int local_4a8;
  uint local_4a0;
  uint local_474;
  float local_44c;
  float local_448;
  float local_444;
  float local_440;
  float local_43c;
  float local_438;
  float local_434;
  float local_430;
  float local_42c;
  float local_428;
  float local_424;
  float 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;
  undefined4 local_3d8;
  undefined4 local_3d4;
  undefined4 local_3d0;
  undefined4 local_3cc;
  undefined4 local_3c8;
  undefined4 local_3c4;
  undefined4 local_3c0;
  undefined4 local_3bc;
  undefined4 local_3b8;
  undefined4 local_3b4;
  undefined4 local_3b0;
  undefined4 local_3ac;
  undefined4 local_3a8;
  undefined4 local_3a4;
  undefined4 local_3a0;
  float local_39c;
  float local_398;
  float local_394;
  undefined4 local_390;
  float local_38c;
  undefined4 *local_388;
  float *local_384;
  float *local_380;
  undefined4 *local_37c;
  undefined4 *local_378;
  undefined4 *local_374;
  undefined4 *local_370;
  float *local_36c;
  undefined4 *local_368;
  undefined4 *local_364;
  undefined4 *local_360;
  float *local_35c;
  undefined4 local_358;
  int local_354;
  int local_350;
  int local_34c;
  int local_348;
  int local_344;
  uint local_340 [16];
  float local_300 [16];
  float local_2c0 [64];
  float local_1c0;
  float local_1bc;
  float local_1b8;
  float local_1b4;
  float local_1b0;
  float local_1ac;
  float local_1a8;
  float local_1a4;
  float local_1a0;
  float local_19c;
  float local_198;
  float local_194;
  byte local_c0 [16];
  byte local_b0 [16];
  byte local_a0 [128];
  int local_20;
  
  uVar36 = FUN_0004c803();
  iVar26 = (int)((ulonglong)uVar36 >> 0x20);
  iVar11 = (int)uVar36;
  local_474 = 0;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  uVar15 = *(uint *)(iVar11 + 0x1c);
  if (0 < (int)uVar15) {
    do {
      uVar19 = *(uint *)(iVar11 + 0x18);
      uVar35 = local_474 + 4;
      uVar29 = 0;
      if (0 < (int)uVar19) {
        do {
          uVar1 = uVar29 + 4;
          iVar24 = uVar19 - uVar29;
          if (uVar1 < uVar19) {
            iVar24 = 4;
          }
          iVar12 = uVar15 - local_474;
          if (uVar35 < uVar15) {
            iVar12 = 4;
          }
          local_4a8 = GetVirtualPixels(iVar11,uVar29,local_474,iVar24,iVar12,param_2);
          if (local_4a8 == 0) {
            uVar15 = *(uint *)(iVar11 + 0x1c);
            break;
          }
          iVar13 = 0;
          do {
            local_300[iVar13] = -NAN;
            local_340[iVar13] = 0xffffffff;
            iVar13 = iVar13 + 1;
          } while (iVar13 != 0x10);
          if (iVar12 < 1) {
            if (iVar26 == 0x35545844) {
              local_4d4 = 0.0;
              local_4b0 = 0xff;
              local_4b8 = 0.0;
              local_4a0 = 5;
              local_4ac = 0.0;
              goto LAB_001ee710;
            }
            local_4d4 = 0.0;
            local_4d0 = 0.0;
            local_4e0 = 0.0;
            local_4c0 = 0.0;
            local_4dc = 0.0;
            local_4cc = 0.0;
            fVar2 = 0.0;
            fVar3 = local_4c0;
LAB_001ed457:
            local_4c0 = fVar3;
            local_438 = 0.0;
            local_43c = 0.0;
            local_440 = 0.0;
            local_444 = 0.0;
            local_448 = 0.0;
            local_44c = 0.0;
            fVar6 = 1.0;
            iVar24 = 8;
            fVar3 = 1.0;
            fVar4 = 1.0;
            do {
              fVar8 = local_4dc * fVar6 + fVar2 * fVar3 + local_4cc * fVar4;
              fVar27 = local_4e0 * fVar6 + local_4c0 * fVar3 + fVar2 * fVar4;
              fVar5 = fVar6 * local_4d0 + fVar3 * local_4e0 + fVar4 * local_4dc;
              fVar3 = fVar5;
              if (fVar5 <= fVar27 || fVar27 != fVar5) {
                fVar3 = fVar27;
              }
              fVar4 = fVar8;
              if (fVar8 <= fVar3) {
                fVar4 = fVar3;
              }
              if (fVar4 < 0.0) {
                fVar3 = -fVar4;
                fVar6 = -1.0;
              }
              else {
                fVar6 = 1.0;
                fVar3 = fVar4;
              }
              if ((float)*(double *)(unaff_EDI + 0xb2291) <= fVar3) {
                fVar6 = *(float *)(unaff_EDI + 0xb2871) / fVar4;
              }
              else {
                fVar6 = fVar6 / (float)*(double *)(unaff_EDI + 0xb2291);
              }
              iVar24 = iVar24 + -1;
              fVar4 = fVar8 * fVar6;
              fVar3 = fVar27 * fVar6;
              fVar6 = fVar6 * fVar5;
            } while (iVar24 != 0);
            bVar25 = (extraout_CL ^ 1) & 1 | local_4d4 == 0.0;
            if (bVar25 == 0) {
              local_3d0 = 0x3de38e39;
              local_41c = 0x3f800000;
              local_418 = 0x3f800000;
              local_414 = 0x3f800000;
              local_410 = 0x3f800000;
              local_3ec = *(undefined4 *)(unaff_EDI + 0xb227d);
              local_3cc = *(undefined4 *)(unaff_EDI + 0xbdd29);
              local_3dc = *(undefined4 *)(unaff_EDI + 0xec3b9);
              local_3ac = *(undefined4 *)(unaff_EDI + 0xec3b5);
              local_3bc = *(undefined4 *)(unaff_EDI + 0xec3bd);
              local_3a0 = 0x3ee38e39;
              local_40c = *(undefined4 *)(unaff_EDI + 0xd9031);
              local_400 = 0;
              local_3fc = *(undefined4 *)(unaff_EDI + 0xec3ad);
              local_3f0 = 0;
              local_39c = 0.0;
              local_398 = 0.0;
              local_394 = 0.0;
              local_390 = 0;
              local_408 = 0x427c0000;
              local_3f8 = 0x3c820821;
              local_434 = fVar4;
              local_430 = fVar3;
              local_42c = fVar6;
              local_404 = local_40c;
              local_3f4 = local_3fc;
              local_3e8 = local_3ec;
              local_3e4 = local_3ec;
              local_3e0 = local_3ec;
              local_3d8 = local_3dc;
              local_3d4 = local_3dc;
              local_3c8 = local_3cc;
              local_3c4 = local_3cc;
              local_3c0 = local_3cc;
              local_3b8 = local_3bc;
              local_3b4 = local_3bc;
              local_3b0 = local_3bc;
              local_3a8 = local_3ac;
              local_3a4 = local_3ac;
              FUN_001e9500(fVar4,fVar3,fVar6,&local_1c0,&local_39c,local_a0,0);
              local_4c0 = *(float *)(unaff_EDI + 0xec3a1);
              iVar12 = 0;
              iVar24 = 0;
              local_4cc = 0.0;
              local_4d0 = 0.0;
              local_4dc = 0.0;
              do {
                uVar16 = GetMagickResourceLimit(7);
                local_350 = (int)local_4dc;
                local_358 = local_4c0;
                local_34c = (int)local_4d0;
                local_348 = (int)local_4cc;
                local_38c = local_4d4;
                local_388 = &local_41c;
                local_384 = &local_440;
                local_380 = &local_44c;
                local_37c = &local_40c;
                local_378 = &local_3fc;
                local_374 = &local_3ec;
                local_370 = &local_3dc;
                local_36c = &local_1c0;
                local_368 = &local_3cc;
                local_364 = &local_3bc;
                local_360 = &local_3ac;
                local_35c = &local_39c;
                local_354 = iVar24;
                local_344 = iVar12;
                GOMP_parallel(unaff_EDI + -0xd87,&local_38c,uVar16,0);
                iVar14 = local_348;
                iVar33 = local_34c;
                iVar13 = local_350;
                iVar24 = local_354;
                local_4c0 = (float)local_358;
                local_4dc = (float)local_350;
                local_4d0 = (float)local_34c;
                local_4cc = (float)local_348;
                if (iVar12 != local_354) break;
                iVar12 = iVar12 + 1;
                if (iVar12 == 8) {
                  iVar24 = 7;
                  break;
                }
                local_428 = local_44c - local_440;
                local_424 = local_448 - local_43c;
                local_420 = local_444 - local_438;
                iVar17 = FUN_001e9500(local_428,local_424,local_420,&local_1c0,&local_39c,local_a0,
                                      iVar12);
              } while (iVar17 != 0);
              pbVar28 = local_a0 + iVar24 * 0x10;
              if (0 < iVar13) {
                pbVar18 = pbVar28;
                do {
                  bVar25 = *pbVar18;
                  pbVar18 = pbVar18 + 1;
                  local_b0[bVar25] = 0;
                } while (pbVar28 + iVar13 != pbVar18);
              }
              if (iVar13 < iVar33) {
                pbVar18 = pbVar28 + iVar13;
                do {
                  bVar25 = *pbVar18;
                  pbVar18 = pbVar18 + 1;
                  local_b0[bVar25] = 2;
                } while (pbVar28 + iVar33 != pbVar18);
              }
              if (iVar33 < iVar14) {
                pbVar18 = pbVar28 + iVar33;
                do {
                  bVar25 = *pbVar18;
                  pbVar18 = pbVar18 + 1;
                  local_b0[bVar25] = 3;
                } while (pbVar28 + iVar14 != pbVar18);
              }
              if (iVar14 < (int)local_4d4) {
                pbVar18 = pbVar28 + iVar14;
                do {
                  bVar25 = *pbVar18;
                  pbVar18 = pbVar18 + 1;
                  local_b0[bVar25] = 1;
                } while (pbVar28 + (int)local_4d4 != pbVar18);
              }
              iVar24 = 0;
              do {
                while (local_300[iVar24] != -NAN) {
                  local_c0[iVar24] = local_b0[(int)local_300[iVar24]];
                  iVar24 = iVar24 + 1;
                  if (iVar24 == 0x10) goto LAB_001edb47;
                }
                local_c0[iVar24] = 3;
                iVar24 = iVar24 + 1;
              } while (iVar24 != 0x10);
            }
            else {
              if (local_4d4 == 0.0) {
                fVar2 = *(float *)(unaff_EDI + 0xb227d);
                local_438 = 0.0;
                local_43c = 0.0;
LAB_001ee1db:
                fVar3 = local_43c * *(float *)(unaff_EDI + 0xdf975) +
                        *(float *)(unaff_EDI + 0xb227d);
LAB_001ee1e7:
                if (local_438 < 0.0) goto LAB_001ee13a;
LAB_001ee1f9:
                if (1.0 < local_438) {
                  fVar6 = *(float *)(unaff_EDI + 0xec399);
                }
                else {
                  fVar6 = *(float *)(unaff_EDI + 0xb227d) +
                          local_438 * *(float *)(unaff_EDI + 0xd9031);
                }
              }
              else {
                local_43c = local_2c0[1];
                local_438 = local_2c0[2];
                local_44c = local_2c0[0];
                local_448 = local_2c0[1];
                local_444 = local_2c0[2];
                local_4d0 = fVar6 * local_2c0[2] + fVar3 * local_2c0[1] + fVar4 * local_2c0[0];
                local_4dc = local_2c0[0];
                if (1 < (int)local_4d4) {
                  local_4b4 = local_2c0[2];
                  bVar32 = 0;
                  bVar34 = 0;
                  local_4ac = local_2c0[1];
                  local_4b8 = local_2c0[0];
                  pfVar21 = local_2c0;
                  local_4cc = local_2c0[1];
                  bVar23 = 0;
                  local_4c0 = local_2c0[2];
                  local_4e0 = local_4d0;
                  bVar30 = 0;
                  do {
                    while( true ) {
                      fVar2 = pfVar21[4];
                      fVar27 = pfVar21[5];
                      fVar5 = pfVar21[6];
                      fVar8 = fVar6 * fVar5 + fVar3 * fVar27 + fVar4 * fVar2;
                      if (local_4e0 <= fVar8) break;
                      pfVar21 = pfVar21 + 4;
                      bVar30 = bVar25;
                      local_4e0 = fVar8;
                      local_4dc = fVar2;
                      local_4cc = fVar27;
                      local_4c0 = fVar5;
                      if (pfVar21 == local_2c0 + (int)local_4d4 * 4 + -4) goto LAB_001ee095;
                    }
                    if (local_4d0 < fVar8) {
                      local_4d0 = fVar8;
                      local_4b8 = fVar2;
                      local_4b4 = fVar5;
                      local_4ac = fVar27;
                      bVar32 = bVar25;
                      bVar34 = bVar25;
                      bVar23 = bVar25;
                    }
                    pfVar21 = pfVar21 + 4;
                  } while (pfVar21 != local_2c0 + (int)local_4d4 * 4 + -4);
LAB_001ee095:
                  fVar2 = local_4cc;
                  fVar3 = local_4c0;
                  if (bVar30 == 0) {
                    local_4dc = local_2c0[0];
                    fVar2 = local_43c;
                    fVar3 = local_438;
                  }
                  local_438 = fVar3;
                  local_43c = fVar2;
                  if (bVar34 != 0) {
                    local_44c = local_4b8;
                  }
                  if (bVar32 != 0) {
                    local_448 = local_4ac;
                  }
                  if (bVar23 != 0) {
                    local_444 = local_4b4;
                  }
                }
                if (0.0 <= local_4dc) {
                  if (local_4dc <= 1.0) {
                    fVar2 = *(float *)(unaff_EDI + 0xb227d) +
                            local_4dc * *(float *)(unaff_EDI + 0xd9031);
                  }
                  else {
                    fVar2 = *(float *)(unaff_EDI + 0xec399);
                  }
                }
                else {
                  fVar2 = *(float *)(unaff_EDI + 0xb227d);
                }
                if (0.0 <= local_43c) {
                  if (local_43c <= 1.0) goto LAB_001ee1db;
                  fVar3 = *(float *)(unaff_EDI + 0xec39d);
                  goto LAB_001ee1e7;
                }
                fVar3 = *(float *)(unaff_EDI + 0xb227d);
                if (0.0 <= local_438) goto LAB_001ee1f9;
LAB_001ee13a:
                fVar6 = *(float *)(unaff_EDI + 0xb227d);
              }
              local_440 = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);
              local_43c = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);
              local_438 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);
              if (local_44c < 0.0) {
                fVar2 = *(float *)(unaff_EDI + 0xb227d);
LAB_001ee39c:
                if (0.0 <= local_448) goto LAB_001ee3ad;
LAB_001ee81d:
                fVar3 = *(float *)(unaff_EDI + 0xb227d);
LAB_001ee3c3:
                if (0.0 <= local_444) goto LAB_001ee3d4;
LAB_001ee7e9:
                fVar6 = *(float *)(unaff_EDI + 0xb227d);
              }
              else {
                if (1.0 < local_44c) {
                  fVar2 = *(float *)(unaff_EDI + 0xec399);
                  goto LAB_001ee39c;
                }
                fVar2 = *(float *)(unaff_EDI + 0xb227d) +
                        local_44c * *(float *)(unaff_EDI + 0xd9031);
                if (local_448 < 0.0) goto LAB_001ee81d;
LAB_001ee3ad:
                if (1.0 < local_448) {
                  fVar3 = *(float *)(unaff_EDI + 0xec39d);
                  goto LAB_001ee3c3;
                }
                fVar3 = local_448 * *(float *)(unaff_EDI + 0xdf975) +
                        *(float *)(unaff_EDI + 0xb227d);
                if (local_444 < 0.0) goto LAB_001ee7e9;
LAB_001ee3d4:
                if (1.0 < local_444) {
                  fVar6 = *(float *)(unaff_EDI + 0xec399);
                }
                else {
                  fVar6 = local_444 * *(float *)(unaff_EDI + 0xd9031) +
                          *(float *)(unaff_EDI + 0xb227d);
                }
              }
              uVar10 = (undefined2)((uint)local_38c >> 0x10);
              if (fVar6 <= 0.0) {
                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x800);
              }
              else {
                local_38c = (float)(CONCAT22(uVar10,in_FPUControlWord) & 0xfffff3ff | 0x400);
              }
              local_39c = (float)CONCAT22(local_39c._2_2_,in_FPUControlWord);
              local_44c = ROUND(fVar2) * *(float *)(unaff_EDI + 0xec3ad);
              local_1c0 = local_440;
              local_448 = *(float *)(unaff_EDI + 0xec3b1) * ROUND(fVar3);
              local_1bc = local_43c;
              local_444 = ROUND(fVar6) * *(float *)(unaff_EDI + 0xec3ad);
              local_1b8 = local_438;
              local_1b4 = local_44c;
              fVar2 = *(float *)(unaff_EDI + 0xec3b5);
              fVar3 = *(float *)(unaff_EDI + 0xec3b9);
              local_1b0 = local_448;
              local_1ac = local_444;
              local_1a8 = local_44c * fVar3 + local_440 * fVar2;
              local_1a4 = local_448 * fVar3 + local_43c * fVar2;
              local_1a0 = local_444 * fVar3 + local_438 * fVar2;
              local_19c = local_44c * fVar2 + local_440 * fVar3;
              local_198 = local_448 * fVar2 + local_43c * fVar3;
              local_194 = fVar3 * local_438 + local_444 * fVar2;
              if (0 < (int)local_4d4) {
                pbVar28 = local_a0;
                pfVar21 = local_2c0;
                pbVar18 = pbVar28 + (int)local_4d4;
                do {
                  iVar24 = 0;
                  iVar12 = 0;
                  fVar2 = *(float *)(unaff_EDI + 0xec3a1);
                  pfVar22 = &local_1c0;
                  do {
                    fVar3 = (pfVar21[2] - pfVar22[2]) * (pfVar21[2] - pfVar22[2]) +
                            (pfVar21[1] - pfVar22[1]) * (pfVar21[1] - pfVar22[1]) +
                            (*pfVar21 - *pfVar22) * (*pfVar21 - *pfVar22);
                    if (fVar3 < fVar2) {
                      iVar24 = iVar12;
                      fVar2 = fVar3;
                    }
                    iVar12 = iVar12 + 1;
                    pfVar22 = pfVar22 + 3;
                  } while (iVar12 != 4);
                  *pbVar28 = (byte)iVar24;
                  pbVar28 = pbVar28 + 1;
                  pfVar21 = pfVar21 + 4;
                } while (pbVar28 != pbVar18);
              }
              iVar24 = 0;
              do {
                if (local_300[iVar24] == -NAN) {
                  local_c0[iVar24] = 3;
                }
                else {
                  local_c0[iVar24] = local_a0[(int)local_300[iVar24]];
                }
                iVar24 = iVar24 + 1;
              } while (iVar24 != 0x10);
            }
LAB_001edb47:
            FUN_001e9760(local_440,local_43c,local_438,local_44c,local_448,local_444,local_c0);
          }
          else {
            local_4b0 = 0xff;
            local_4d4 = 0.0;
            local_4ac = 3.57331e-43;
            local_4b8 = 0.0;
            local_4a0 = 0;
            local_4c0 = 0.0;
            do {
              if (0 < iVar24) {
                iVar13 = *(int *)(iVar11 + 0x2a8);
                iVar14 = *(int *)(iVar11 + 0x298) * 8;
                local_4e0 = (float)((int)local_4c0 << 4);
                iVar33 = local_4a8;
                do {
                  uVar15 = 0xff;
                  local_4dc._0_1_ = 0xff;
                  if (iVar26 == 0x35545844) {
                    if (*(int *)(*(int *)(iVar11 + 0x2a8) + 0x34) == 0) {
LAB_001ed600:
                      local_4b8 = 3.57331e-43;
                    }
                    else {
                      dVar7 = *(double *)(iVar33 + *(int *)(*(int *)(iVar11 + 0x2a8) + 0x38) * 8);
                      if (dVar7 <= 0.0) {
                        uVar15 = 0;
                        local_4dc._0_1_ = 0;
                        local_4b0 = 0;
                      }
                      else {
                        dVar7 = dVar7 / (double)*(float *)(unaff_EDI + 0xbb149);
                        if ((double)*(float *)(unaff_EDI + 0xbb14d) <= dVar7) goto LAB_001ed600;
                        local_4dc._0_1_ =
                             (byte)(short)ROUND(dVar7 + (double)*(float *)(unaff_EDI + 0xb227d));
                        uVar15 = (uint)local_4dc._0_1_;
                        if (uVar15 < local_4b0) {
                          local_4b0 = uVar15;
                        }
                        if ((uint)local_4b8 < uVar15) {
                          local_4b8 = (float)uVar15;
                        }
                        if (local_4dc._0_1_ == 0) {
                          uVar15 = 0;
                        }
                        else {
                          if (uVar15 < (uint)local_4ac) {
                            local_4ac = (float)uVar15;
                          }
                          if (local_4dc._0_1_ == 0xff) {
                            uVar15 = 0xff;
                          }
                          else if (local_4a0 < uVar15) {
                            local_4a0 = uVar15;
                          }
                        }
                      }
                    }
                  }
                  *(uint *)((int)local_340 + (int)local_4e0) = uVar15;
                  fVar2 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 8) * 8);
                  if (NAN(fVar2)) {
                    fVar2 = 0.0;
                  }
                  else if (fVar2 <= 0.0) {
                    fVar2 = 0.0;
                  }
                  else {
                    fVar2 = fVar2 / *(float *)(unaff_EDI + 0xbb149);
                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar2) {
                      fVar2 = 1.0;
                    }
                    else {
                      fVar2 = (float)((short)ROUND(fVar2 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)
                              / *(float *)(unaff_EDI + 0xbb14d);
                    }
                  }
                  fVar3 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x14) * 8);
                  if (NAN(fVar3)) {
                    fVar3 = 0.0;
                  }
                  else if (fVar3 <= 0.0) {
                    fVar3 = 0.0;
                  }
                  else {
                    fVar3 = fVar3 / *(float *)(unaff_EDI + 0xbb149);
                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar3) {
                      fVar3 = 1.0;
                    }
                    else {
                      fVar3 = (float)((short)ROUND(fVar3 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)
                              / *(float *)(unaff_EDI + 0xbb14d);
                    }
                  }
                  fVar6 = (float)*(double *)(iVar33 + *(int *)(iVar13 + 0x20) * 8);
                  if (NAN(fVar6)) {
                    fVar6 = 0.0;
                  }
                  else if (fVar6 <= 0.0) {
                    fVar6 = 0.0;
                  }
                  else {
                    fVar6 = fVar6 / *(float *)(unaff_EDI + 0xbb149);
                    if (*(float *)(unaff_EDI + 0xbb14d) <= fVar6) {
                      fVar6 = 1.0;
                    }
                    else {
                      fVar6 = (float)((short)ROUND(fVar6 + *(float *)(unaff_EDI + 0xb227d)) & 0xff)
                              / *(float *)(unaff_EDI + 0xbb14d);
                    }
                  }
                  if (param_1 == 0) {
                    fVar4 = 1.0;
                  }
                  else {
                    fVar4 = (float)(uVar15 + 1) * *(float *)(unaff_EDI + 0xec3a5);
                  }
                  iVar33 = iVar33 + iVar14;
                  if (0 < (int)local_4d4) {
                    pfVar21 = local_2c0;
                    fVar27 = 0.0;
                    do {
                      if ((((*pfVar21 == fVar2) && (pfVar21[1] == fVar3)) && (pfVar21[2] == fVar6))
                         && (((char)local_4dc._0_1_ < '\0' || (iVar26 == 0x35545844)))) {
                        local_2c0[(int)fVar27 * 4 + 3] = fVar4 + local_2c0[(int)fVar27 * 4 + 3];
                        *(float *)((int)local_300 + (int)local_4e0) = fVar27;
                        goto LAB_001ed2a5;
                      }
                      fVar27 = (float)((int)fVar27 + 1);
                      pfVar21 = pfVar21 + 4;
                    } while (fVar27 != local_4d4);
                  }
                  local_2c0[(int)local_4d4 * 4] = fVar2;
                  local_2c0[(int)local_4d4 * 4 + 1] = fVar3;
                  local_2c0[(int)local_4d4 * 4 + 2] = fVar6;
                  local_2c0[(int)local_4d4 * 4 + 3] = fVar4;
                  *(float *)((int)local_300 + (int)local_4e0) = local_4d4;
                  local_4d4 = (float)((int)local_4d4 + 1);
LAB_001ed2a5:
                  local_4e0 = (float)((int)local_4e0 + 4);
                } while ((float)((iVar24 + (int)local_4c0 * 4) * 4) != local_4e0);
                local_4a8 = local_4a8 + iVar14 * iVar24;
              }
              local_4c0 = (float)((int)local_4c0 + 1);
            } while (local_4c0 != (float)iVar12);
            if (0 < (int)local_4d4) {
              pfVar21 = local_2c0 + 3;
              pfVar22 = pfVar21 + (int)local_4d4 * 4;
              do {
                fVar2 = *pfVar21;
                if (fVar2 < 0.0) {
                  sqrtf(fVar2);
                }
                *pfVar21 = SQRT(fVar2);
                pfVar21 = pfVar21 + 4;
              } while (pfVar22 != pfVar21);
            }
            if (iVar26 == 0x35545844) {
              if (local_4a0 < (uint)local_4ac) {
                local_4ac = (float)local_4a0;
              }
              else if (4 < local_4a0 - (int)local_4ac) goto LAB_001ee710;
              local_4a0 = 0xff;
              if ((int)local_4ac + 5U < 0x100) {
                local_4a0 = (int)local_4ac + 5U;
              }
              if (local_4a0 - (int)local_4ac < 5) {
                local_4ac = (float)(local_4a0 - 5);
              }
LAB_001ee710:
              pbVar28 = local_b0;
              uVar15 = FUN_001e9410(local_340,pbVar28);
              if ((uint)local_4b8 < local_4b0) {
LAB_001eea60:
                uVar19 = (int)local_4b8 + 7;
                if (0xff < uVar19) {
                  uVar19 = 0xff;
                }
                if (uVar19 - (int)local_4b8 < 7) {
                  local_4b0 = uVar19 - 7;
                  local_4b8 = (float)uVar19;
                }
                else {
                  local_4b0 = (uint)local_4b8;
                  local_4b8 = (float)uVar19;
                }
              }
              else if ((int)local_4b8 - local_4b0 < 7) {
                local_4b8 = (float)local_4b0;
                goto LAB_001eea60;
              }
              uVar19 = FUN_001e9410(local_340,local_a0);
              if (uVar19 < uVar15) {
                iVar24 = 0;
                do {
                  while (bVar25 = local_a0[iVar24], bVar25 == 0) {
                    pbVar28[iVar24] = 1;
                    iVar24 = iVar24 + 1;
                    if (iVar24 == 0x10) goto LAB_001ee8cf;
                  }
                  bVar23 = 9 - bVar25;
                  if (bVar25 == 1) {
                    bVar23 = 0;
                  }
                  iVar12 = iVar24 + 1;
                  pbVar28[iVar24] = bVar23;
                  iVar24 = iVar12;
                } while (iVar12 != 0x10);
              }
              else {
                local_4b0 = local_4a0;
                local_4b8 = local_4ac;
              }
LAB_001ee8cf:
              WriteBlobByte(iVar11,local_4b8);
              WriteBlobByte(iVar11,local_4b0);
              do {
                iVar24 = 0;
                uVar15 = 0;
                do {
                  pbVar18 = pbVar28 + iVar24;
                  cVar9 = (char)iVar24;
                  iVar24 = iVar24 + 1;
                  uVar15 = uVar15 | (uint)*pbVar18 << (cVar9 * '\x03' & 0x1fU);
                } while (iVar24 != 8);
                pbVar28 = pbVar28 + 8;
                WriteBlobByte(iVar11,uVar15 & 0xff);
                WriteBlobByte(iVar11,uVar15 >> 8 & 0xff);
                WriteBlobByte(iVar11,uVar15 >> 0x10 & 0xff);
              } while (local_a0 != pbVar28);
            }
            if (local_4d4 != 1.4013e-45) {
              fVar6 = 0.0;
              if (local_4d4 == 0.0) {
                local_4d0 = 0.0;
                local_4e0 = 0.0;
                local_4c0 = 0.0;
                local_4dc = 0.0;
                local_4cc = 0.0;
                fVar2 = fVar6;
                fVar3 = local_4c0;
              }
              else {
                local_4c0 = 0.0;
                local_4b8 = 0.0;
                fVar2 = 0.0;
                pfVar21 = local_2c0;
                do {
                  fVar3 = pfVar21[3];
                  pfVar22 = pfVar21 + 4;
                  fVar2 = fVar2 + fVar3;
                  local_4b8 = *pfVar21 * fVar3 + local_4b8;
                  local_4c0 = pfVar21[1] * fVar3 + local_4c0;
                  fVar6 = fVar3 * pfVar21[2] + fVar6;
                  pfVar21 = pfVar22;
                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);
                if (*(float *)(unaff_EDI + 0xec3a9) < fVar2) {
                  local_4b8 = local_4b8 / fVar2;
                  local_4c0 = local_4c0 / fVar2;
                  fVar6 = fVar6 / fVar2;
                }
                local_4d0 = 0.0;
                local_4e0 = 0.0;
                fVar3 = 0.0;
                fVar2 = 0.0;
                local_4dc = 0.0;
                local_4cc = 0.0;
                pfVar21 = local_2c0;
                do {
                  pfVar22 = pfVar21 + 4;
                  fVar5 = *pfVar21 - local_4b8;
                  fVar8 = pfVar21[1] - local_4c0;
                  fVar4 = pfVar21[3];
                  fVar27 = (pfVar21[2] - fVar6) * fVar4;
                  local_4cc = fVar4 * fVar5 * fVar5 + local_4cc;
                  fVar2 = fVar5 * fVar8 * fVar4 + fVar2;
                  local_4dc = fVar5 * fVar27 + local_4dc;
                  fVar3 = fVar8 * fVar4 * fVar8 + fVar3;
                  local_4e0 = fVar8 * fVar27 + local_4e0;
                  local_4d0 = (pfVar21[2] - fVar6) * fVar27 + local_4d0;
                  pfVar21 = pfVar22;
                } while (local_2c0 + (int)local_4d4 * 4 != pfVar22);
              }
              goto LAB_001ed457;
            }
            fVar2 = *(float *)(unaff_EDI + 0xbb14d);
            local_4dc = -NAN;
            local_4e0 = 0.0;
            fVar3 = *(float *)(unaff_EDI + 0xb227d);
            uVar15 = (uint)ROUND(local_2c0[0] * fVar2 + fVar3);
            if (0xff < uVar15) {
              uVar15 = 0xff;
            }
            local_c0[0] = (byte)uVar15;
            uVar19 = (uint)ROUND(local_2c0[1] * fVar2 + fVar3);
            if (0xff < uVar19) {
              uVar19 = 0xff;
            }
            local_c0[1] = (char)uVar19;
            uVar29 = (uint)ROUND(fVar2 * local_2c0[2] + fVar3);
            if (0xff < uVar29) {
              uVar29 = 0xff;
            }
            local_c0[2] = (char)uVar29;
            bVar25 = 0;
            uVar20 = uVar15;
            while( true ) {
              iVar24 = (int)local_4e0 * 3;
              pbVar31 = (byte *)(*(int *)(unaff_EDI + 0x1ef625) + (uVar20 & 0xff) * 6 + iVar24);
              pbVar28 = (byte *)((uVar19 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef629) + iVar24);
              pbVar18 = (byte *)(iVar24 + (uVar29 & 0xff) * 6 + *(int *)(unaff_EDI + 0x1ef62d));
              uVar20 = (uint)pbVar28[2] * (uint)pbVar28[2] + (uint)pbVar18[2] * (uint)pbVar18[2] +
                       (uint)pbVar31[2] * (uint)pbVar31[2];
              if (uVar20 <= (uint)local_4dc) {
                fVar2 = *(float *)(unaff_EDI + 0xd9031);
                local_39c = (float)*pbVar31 / fVar2;
                local_398 = (float)*pbVar28 / *(float *)(unaff_EDI + 0xdf975);
                local_394 = (float)*pbVar18 / fVar2;
                local_38c = (float)pbVar31[1] / fVar2;
                bVar25 = local_4e0._0_1_ * '\x02';
                local_388 = (undefined4 *)((float)pbVar28[1] / *(float *)(unaff_EDI + 0xdf975));
                local_384 = (float *)((float)pbVar18[1] / fVar2);
                local_4dc = (float)uVar20;
              }
              if (local_4e0 == 1.4013e-45) break;
              uVar20 = uVar15 & 0xff;
              local_4e0 = 1.4013e-45;
            }
            pbVar28 = local_b0;
            do {
              *pbVar28 = bVar25;
              pbVar28 = pbVar28 + 1;
            } while (local_a0 != pbVar28);
            iVar24 = 0;
            do {
              while (local_300[iVar24] != -NAN) {
                local_a0[iVar24] = local_b0[(int)local_300[iVar24]];
                iVar24 = iVar24 + 1;
                if (iVar24 == 0x10) goto LAB_001edf11;
              }
              local_a0[iVar24] = 3;
              iVar24 = iVar24 + 1;
            } while (iVar24 != 0x10);
LAB_001edf11:
            FUN_001e9760(local_39c,local_398,local_394,local_38c,local_388,local_384,local_a0);
          }
          uVar19 = *(uint *)(iVar11 + 0x18);
          uVar15 = *(uint *)(iVar11 + 0x1c);
          uVar29 = uVar1;
        } while ((int)uVar1 < (int)uVar19);
      }
      local_474 = uVar35;
    } while ((int)uVar35 < (int)uVar15);
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0029eab0();
  }
  return;
}

